Definitions
P
NP
Polynomial Time Redcutions
NP-Hard
NPC
Pseudo Polynomial Time Algorithms
Strongly NP-Complete problems
Approximation Algorithms
PTAS (Polynomial Time Approximation Scheme)
FPTAS (Fully Polynomial Time Approximation Scheme)
Suggestions and Errors, please mail:
purukulk@cs.umass.edu
UNDER CONSTRUCTION
P   : A decision problem Ø is said to be in the set P
if and only if there exists a polynomial time algorithm A such that,
X is a "Yes" instance of Ø if and only if A(X) = "Yes".
NP  : A decision problem Ø is in NP if and only if
there exists a polynomial time algorithm A such that, X is a "Yes" instance
of Ø if and only if there exists some Y (Y is polynomial in the size of the input X,
|Y| = O(|X|k)) and A(X,Y) = "Yes".
Y is said to be a witness or certificate that can be verified in
polynmial time that A(X) = "Yes". NP is said to be a class of intractable
problems since we cannot find the certificate Y efficiently (in polynomial time).
Polynomial-time reductions  :
Ø2 is polynomial time reducible to Ø1,
(Ø2 <= p Ø1), if and only if there exits a polynomial-
time algorithm f that transforms any input instance x of Ø2 to
an instance f(x) of Ø1 such that,
x is a "Yes" instance of Ø2 iff f(x) is a "Yes" instance of Ø 1
x is a "No" instance of Ø2 iff f(x) is a "No" instance of Ø 1
.                 inputs of Ø2
               
               
inputs of Ø1
------------ -----------
| | | |
| YES -------------------> YES |
| | | |
|~~~~~~~~~~| f |~~~~~~~~~|
| | | |
| NO -------------------> NO |
| | | |
------------ -----------
f: polynomial-time reduction function
If for decision problems A and B, A <=pB,
if B in P then A in P
if A in NP then B in NP
if B not in P, cannot say anything about A
A
---------------------------------
| |
| |
x | ------- ------- |
------> | | f | f(x) | B | -----|------> Yes / No
| | | ----->| | |
| ------- ------- |
| |
| |
---------------------------------
x is any input instance of problem A.
f is a polynomial time function that tranforms input x to f(x).
f(x) is the input instance of another problem B. Problem B can be solved
in polynomial time.
Since B can be sovled in polynomial time and f is a polynomial time reduction function,
problem A can be solved in polynomial time by converting the input instance x to f(x)
and using it as input to problem B. Correctness of the output follows from the definition of
polynomial-time reduction function. Thus problem A can be solved in polynomial time.
Note: if A belongs to NP, then problem B also has to be in NP, else
using the above reduction we can solve A in polynomial time.
NP-Hard  : A decision problem Ø is NP-Hard if and only if, for all Ø' in
NP, Ø' <=p Ø.
NPC (NP-Complete)  : A decision problem Ø is NP-Complete(NPC), if and only if
Ø is in NP and Ø is in NP-Hard.
Note: if Ø in NPC and Ø in P, then P = NP !
Relationships amongst P, NP, NPC and NP-Hard
____________________________
| |
| NP |
| |
| ______ ___________|___________
| | | | NP-Hard ~ |
| | P | | & ~ NP-Hard |
| | | | NPC ~ |
| ------ -----------------------
| |
----------------------------
Pseudo-Polynomial Algorithms  :
Strong NP-Complete Problems  :
Apprximation Algorithms  :
Polynomial Time Approximation Scheme  :
Fully Polynomial Time Approxmation Scheme  :
Suggestions and Errors, please mail:
purukulk@cs.umass.edu
Home
UNDER CONSTRUCTION