±PComplete Theory
I. Introduction
II. Definition of ±P
III. Focus on Yes±o Problems
IV. Reductions and Transforms
V. ±PCompleteness
I. Introduction
A problem is said to be polynomial if there exists an algorithm that solves the problem in time
T(n)=O(n
c
), where c is a constant.
Examples of polynomial problems:
Sorting: O(n log n) = O(n
2
)
Allpairs shortest path: O(n
3
)
Minimum spanning tree: O(E log E)= O(E
2
)
A problem is said to be exponential if no polynomialtime algorithm can be developed for it and if we
can find an algorithm that solves it in O(n
u(n)
), where u(n) goes to infinity as n goes to infinity.
The world of computation can be subdivided into three classes:
Polynomial problems (P)
1.
Exponential problems (E)
2.
Intractable (noncomputable) problems (I)
3.
There is a very large and important class of problems that
we know how to solve exponentially,
1.
we don't know how to solve polynomially, and
2.
we don't know if they can be solved polynomially at all
3.
This class is a gray area between the Pclass and the Eclass. It will be studied in this chapter.
Back to Top
NPComplete Theory
http://www.seas.gwu.edu/~ayoussef/cs212/npcomplete.html
1 of 7
9/3/2010 4:52 AM
This preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentII. Definition of ±P
Definition
1 of NP: A problem is said to be Nondeterministically Polynomial (NP) if we can find a
nodeterminsitic Turing machine that can solve the problem in a polynomial number of nondeterministic
moves.
For those who are not familiar with Turing machines, two alternative definitions of NP will be
developed.
Definition
2 of NP: A problem is said to be NP if
its solution comes from a finite set of possibilities, and
1.
it takes polynomial time to verify the correctness of a candidate solution
2.
Remark
: It is much easier and faster to "grade" a solution than to find a solution from scratch.
We use NP to designate the class of all nondeterministically polynomial problems.
Clearly, P is a subset of NP
A very famous open question in Computer Science:
P = NP ?
To give the 3rd alternative definition of NP, we introduce an imaginary, nonimplementable instruction,
which we call "
choose()
".
Behavior of "
choose()
":
if a problem has a solution of N components,
choose(i)
magically returns the ith component of
the CORRECT solution in constant time
1.
if a problem has no solution,
This is the end of the preview.
Sign up
to
access the rest of the document.
 Summer '09
 Algorithms, Computational complexity theory, NPcomplete, Boolean satisfiability problem, NPComplete Theory

Click to edit the document details