(ii) If there is no polynomial time algorithm for
Π
1
, then there cannot be a polynomial
time algorithm for
Π
2
.
Part (ii) is easily proved by contradiction. For part (i), if
p
1
(
n
) is the running time
of Π
1
and
p
2
is the time of the reduction function, then there is an algorithm for
Pi
1
that takes
p
1
(
p
2
(
n
)) steps where
n
is the input length for Π
1
.
A problem Π is called
NP-hard
under polynomial reduction if for any problem
Π
′
∈NP
,
Π
′
≤
poly
Π.
A problem is Π is
NP-complete
(NPC) if it is NP-hard and Π
∈NP
.
Therefore these are problems that are hardest
within
the class
NP
.
Exercise 10.2
If problems
A
and
B
are NPC, then
A
≤
poly
B
and
B
≤
poly
A
.
From the previous exercise, these problems form a kind of equivalent class with re-
spect to polynomial time reductions. However, a crucial question that emerges at this
juncture is :
Do NPC problems actually exist ?
. A positive answer to this question
led to the development of one of the most fascinating areas of Theoretical Computer
Science and will be addressed in the next section.
So far, we have only discussed many-one reducibility that hinges on the existence
of a many-one polynomial time reduction function.
There is another very useful
and perhaps more intuitive notion of reducibility, namely,
Turing reducibility
. The
many-to-one reduction may be thought of as using
one
subroutine call of
P
2
to solve
P
1
(when
P
1
≤
poly
P
2
) in polynomial time, if
P
2
has a polynomial time algorithm.
Clearly, we can afford a polynomial number of subroutine calls to the algorithm for
P
2
and still get a polynomial time algorithms for
P
1
. In other words, we say that
P
1
is
Turing-reducible
to
P
2
if a polynomial time algorithm for
P
2
implies a polynomial
time algorithm for
P
1
. Moreover, we do not require that
P
1
, P
2
be decision problems.
Although, this may seem to be the more natural notion of reducibility, we will rely
on the more restrictive definition to derive the results.
10.2
Cook Levin theorem
Given a boolean formula in boolean variables, the
satisfiability
problem is an assign-
ment of the truth values of the boolean variables that can make the formula evaluate
to TRUE (if it is possible). If the formula is in a
conjunctive normal form
(CNF)
3
,
3
A formula, that looks like (
x
1
∨
x
2
..
)
∧
(
x
i
∨
x
j
∨
..
)
∧
...
(
x
ℓ
∨
...x
n
)
103
JNTU World
JNTU World
Downloaded From JNTU World ()

then the problem is known as CNF Satisfiability. Further, if we restrict the number
of variables in each clause to be exactly
k
then it is known as the k-CNF Satisfiability
problem. A remarkable result attributed to Cook and Levin says the following
Theorem 10.1
The CNF Satisfiability problem is NP Complete under polynomial
time reductions.

#### You've reached the end of your free preview.

Want to read all 128 pages?

- Spring '16
- Analysis of algorithms, JNTU World, FN