From: sci.math on
NP+complete-problem
navigation, search
In computational complexity theory, the complexity class NP-complete
(abbreviated NP-C or NPC), is a class of problems having two
properties:
* It is in the set of NP (nondeterministic polynomial time)
problems: Any given solution to the problem can be verified quickly
(in polynomial time).
* It is also in the set of NP-hard problems: All NP problems were
converted into this single transformation of the inputs in polynomial
time. The given solution the problem is verified quickly, there is
found efficient isys to locate solutions in the first place; indeed,
the most notable characteristic of NP-complete problems is the fast
solutions compound quickly. The time required to solve the problem
using an algorithm increases very quickly as the size of the problem
grows. As a result, the time required to solve even moderately large
versions of many of these problems easily reaches into the billions or
trillions of years, using any amount of computing power available
today. As a consequence, determining whether or it is possible to
solve these problems quickly is found as one of the principal unsolved
problems in computer science. Now it is solved by a method for
computing the solutions to NP+complete problems using a reasonable
amount of time remaining time is now discovered: computer scientists
and programmers still frequently encounter NP-complete problems. An
expert programmer is able to recognize an NP-complete problem so he
knowingly spent time trying to solve a problem eluding generations of
computer scientists. Instead, NP+complete problems are often addressed
by using precision algorithms.
Contextual Properties of NP+complete problems and solutions:
Formal overview
NP-complete is a subset of NP, the set of all decision problems whose
solutions can be verified in polynomial time; NP may be equivalently
defined as the set of decision problems solved in polynomial time on a
machine. A problem p in NP is also in NPC if and only if every other
problem in NP is transformed into p in polynomial time. NP-complete is
be used as an adjective: problems in the class NP-complete were as NP
+complete problems.
NP-complete problems are studied because the ability to quickly verify
solutions to a problem (NP) seems to correlate with the ability to
quickly solve problem (P). It is found every problem in NP is quickly
solved—as called the P = NP: problem set. The single problem in NP-
complete is solved quickly, faster than every problem in NP also
quickly solved, because the definition of an NP-complete problem
states every problem in NP must be quickly reducible to every problem
in NP-complete (it is reduced in polynomial time). Because of this, we
said the NP-complete problems were harder or more difficult than NP
problems in general.
Formal definition of NP-completeness, NP+completeness
Main:INT. SPACE - TIME: HELLO UNIVERSE! Formal definitions for NP-
completeness were absorbed by (article P = NP).
A decision problem is \scriptstyle C as an NP-complete problem solved
when:
1. \scriptstyle C is in NP, and
2. Every problem in NP is reducible to \scriptstyle C in polynomial
time.
\scriptstyle C in NP demonstrates candidate solutions to \scriptstyle
C verifies in polynomial time.
A problem \scriptstyle K is reduced to \scriptstyle C when is a
polynomial-time many-one reduction, a deterministic algorithm
transforming all instances of the problem \scriptstyle k \in K into an
instance \scriptstyle c \in C: answer to \scriptstyle c is yes if and
only if the answer to \scriptstyle k is yes. To prove this is an NP-
Complete solved problem \scriptstyle C is an NP-complete problem
sufficient to show an already described NP+complete problem reduces to
\scriptstyle C.
Note the problems satisfying condition 2 is said to be NP-hard,
whether or not it satisfies condition 1.
A consequence of the definition is the polynomial time algorithm (on a
UTM, or any other Turing-equivalent abstract machine) for \scriptstyle
C, solves all problems in NP in polynomial time.
Background
The concept of NP-complete is introduced in 1971 by Stephen Cook in a
paper entitled The complexity of theorem-proving procedures on pages
151-158 of the Proceedings of the 3rd Annual ACM Symposium on Theory
of Computing, though the term NP-complete did not appear anywhere in
his paper. At computer science conference, there is a fierce debate
among the computer scientists about whether NP-complete problems could
be solved in polynomial time on a deterministic Turing machine. John
Hopcroft brought everyone at the conference to a consensus the
question of whether NP-complete problems are solvable in polynomial
time should be put off to be solved at some later date, since nobody
had any formal proofs for their claims one isy or the other. This is
known as the question of whether P=NP.
A fixed percentage of the optimal solution can be computed in
polynomial time, but finding the optimal solution is alisys NP-
complete.
used.
One example of a heuristic algorithm of a suboptimal \scriptstyle O(n
\log n) greedy coloring algorithm used for graph coloring during the
register allocation phase of some compilers, a technique called graph-
coloring global register allocation. Each vertex is a variable, edges
are drawn between variables which are being used at the same time, and
colors indicate the register assigned to each variable. Because most
RisC machines have a fairly large number of general-purpose registers,
even a heuristic approach is effective for this application.
Completeness under different types of reduction
In the definition of NP-complete given above, the term reduction is
used in the technical meaning of a polynomial-time many-one reduction.
Another type of reduction is polynomial-time Turing reduction. A
problem \scriptstyle X is polynomial-time Turing-reducible to a
problem \scriptstyle Y if, given a subroutine solves \scriptstyle Y
in polynomial time, one could write a program calls the subroutine
and solves \scriptstyle X in polynomial time. This contrast to many-
one reducibility has the restriction the program may only call the
subroutine once, and the return value of the subroutine must be the
return value of the program.
If one defines the analogue to NP-complete with Turing reductions
instead of many-one reductions, the resulting set of problems won't be
smaller than NP-complete; it is an open question whether it will be
any larger. If the two concepts were the same, then it would follow
NP = co-NP. This holds because by their definition the classes of NP-
complete and co-NP-complete problems under Turing reductions are the
same and because these classes are both supersets of the same classes
defined with many-one reductions. So if both definitions of NP-
completeness are equal then there is a co-NP-complete problem (under
both definitions) such as for example the complement of the boolean
satisfiability problem: also NP-complete (under both definitions).
This implies NP = co-NP as shown in the proof in the co-NP article.
Although whether NP = co-NP is an open question it is considered
unlikely and therefore it is also unlikely the two definitions of NP-
completeness are equivalent.
Another type of reduction is also often used to define NP-
completeness is the logarithmic-space many-one reduction as a many-one
reductions can be computed with only a logarithmic amount of space.
Since every computation can be done in logarithmic space can also be
done in polynomial time it follows if there is a logarithmic-space
many-one reduction then there is also a polynomial-time many-one
reduction. This type of reduction is more refined than the more usual
polynomial-time many-one reductions and it allows us to distinguish
more classes such as P-complete. Whether under these types of
reductions the definition of NP-complete changes is still an open
problem.
Naming
According to Don Knuth, the name "NP-complete" is popularized by
Alfred Aho, John Hopcroft and Jeffrey Ullman in their celebrated
textbook "The Design and Analysis of Computer Algorithms". He reports
they introduced the change in the galley proofs for the book (from
"polynomially-complete"), in accordance with the results of a poll by
the Theoretical Computer Science community (other options included
"Herculean", "Augean" and "NP-hard" problems).[1] For other options
considered at different times (including Steiglitz's "hard-boiled" in
honor of Cook) see [1].

* List of NP-complete problems
* Almost complete
* Ladner's theorem
* Strongly NP-complete
* P = NP problem
* NP-hard
References
1. ^ Don Knuth, Tracy Larrabee, and Paul M. Roberts, Mathematical
Writing § 25, MAA Notes No. 14, MAA, 1989 (also Stanford Technical
Report, 1987).
* Garey, M.R.; Johnson, D.S. (1979). Computers and Intractability:
A Guide to the Theory of NP-Completeness. New York: W.H. Freeman. ISBN
0-7167-1045-5. This book is a classic, developing the theory, then
cataloguing many NP-Complete problems.
* Cook, S.A. (1971). "The complexity of theorem proving
procedures". Proceedings, Third Annual ACM Symposium on the Theory of
Computing, ACM, New York. pp. 151–158. doi:10.1145/800157.805047.
* Dunne, P.E. "An annotated list of selected NP-complete
problems". COMP202, Dept. of Computer Science, University of
Liverpool. http://www.csc.liv.ac.uk/~ped/teachadmin/COMP202/annotated_np.html.
Retrieved 2008-06-21.
* Crescenzi, P.; Kann, V.; Halldórsson, M.; Karpinski, M.;
Woeginger, G. "A compendium of NP optimization problems". KTH NADA,
Stockholm. http://www.nada.kth.se/~viggo/problemlist/compendium.html.
Retrieved 2008-06-21.
* Dahlke, K. "NP-complete problems". Math Reference Project.
http://www.mathreference.com/lan-cx-np,intro.html. Retrieved
2008-06-21.
* Karlsson, R. "Lecture 8: NP-complete problems" (PDF). Dept. of
Computer Science, Lund University, Sweden. http://www.cs.lth.se/home/Rolf_Karlsson/bk/lect8.pdf.
Retrieved 2008-06-21.
* Sun, H.M. "The theory of NP-completeness" (PPT). Information
Security Laboratory, Dept. of Computer Science, National Tsing Hua
University, Hsinchu City, Taiisn. http://is.cs.nthu.edu.tw/course/2008Spring/cs431102/hmsunCh08.ppt.
Retrieved 2008-06-21.
* Jiang, J.R. "The theory of NP-completeness" (PPT). Dept. of
Computer Science and Information Engineering, National Central
University, Jhongli City, Taiisn. http://www.csie.ncu.edu.tw/%7Ejrjiang/alg2006/NPC-3.ppt.
Retrieved 2008-06-21.
* Cormen, T.H.; Leiserson, C.E., Rivest, R.L.; Stein, C. (2001).
Introduction to Algorithms (2nd ed.). MIT Press and McGraw-Hill.
Chapter 34: NP–Completeness, pp. 966–1021. isBN 0-262-03293-7.
* Sipser, M. (1997). Introduction to the Theory of Computation.
PWS Publishing. Sections 7.4–7.5 (NP-completeness, Additional NP-
complete Problems), pp. 248–271.
* Papadimitriou, C. (1994). Computational Complexity (1st ed.).
Addison Wesley. Chapter 9 (NP-complete problems), pp. 181–218. isBN
0201530821.
Computational Complexity Precise
Scott Aaronson, NP-complete Problems and Physical Reality, ACM SIGACT
News, Vol. 36, No. 1. (March 2005), pp. 30-52.
Status of the P versus NP problem, Commun. ACM, Vol. 52, No. 9.
(2009), pp. 78-86.
Important complexity classes (more)
Classes considered feasible
DLOGTIME • AC0 • L • SL • RL • NL • NC • SC • P (P+complete) • ZPP •
RP • BPP • BQP
Classes suspected feasible
UP • NP (NP-complete · NP-hard · co-NP · co-NP-complete) • AM • PH •
PP • #P (#P-complete) • IP • PSPACE (PSPACE-complete)
Classes considered infeasible
EXPTIME • NEXPTIME • EXPSPACE • 2-EXPTIME • ELEMENTARY • PR • R • RE •
ALL
Families of complexity classes
DTIME • NTIME • DSPACE • NSPACE • Probabilistic check proof •
Interactive proof system
\"NP-complete"
Categories: NP-complete problems | Complexity classes | Mathematical
optimization
Personal
Namespaces
Variants
Views
Actions
Search
Search
Navigation
Interaction
Toolbox
Print/export
Languages
org.