Transcript NP hard
NP – HARD
JAYASRI JETTI
CHINMAYA KRISHNA SURYADEVARA
P and NP
P – The set of all problems solvable in polynomial
time by a deterministic Turing Machine (DTM).
Example: Sorting and searching.
P and NP
• NP- the set of all problems solvable in
polynomial time by non deterministic Turing
Machine (NDTM)
• Example Partition.
P is a subset of NP
NP complete
• NP – Complete (NP – C): the set of all problems in
NP “at least as hard” as every other problem in
NP.
• To prove a problem x is NP complete
– Show that x is in NP
– Show that some other NP - C problem reduces to x
• If an NP hard problem can be solved in
polynomial time, then all NP complete problems
can be solved in polynomial time.
• NP – H includes all NP - C problems
Deterministic and non deterministic
problems
• Algorithm is deterministic if for a given input
the output generated is same for function.
• A mathematical function is deterministic
hence the state is known at every step of
algorithm.
• Algorithm is nondeterministic if there are
more than one path the algorithm can take.
Due to this one cannot determine the next
state of the machine running the algorithm.
• To specify such algorithms we introduce three
statements
– Choice(s)
– Failure
– Success
- arbitrary choose one of the elements of
the set S
- signals an unsuccessful completion
- signals a successful completion
• Whenever there is a set of choices that leads
to a successful completion than one search set
of choices is always made and the algorithm
terminates.
• A nondeterministic algorithm terminates
unsuccessfully iff there exists no set of choices
leading to a successful signal
• A machine capable of executing a
nondeterministic algorithm is called a
nondeterministic machine.
• While nondeterministic machine do not exist
in practice they will provide strong reason to
conclude that certain problems cannot be
solved by fast deterministic algorithms
• Example of nondeterministic algorithm
// the problem is to search for an element X//
//output j such that A(j) = x; or j = 0 if x is not in A//
j -> choice (1:n)
If A(j)= x then print (j); success end if
Print (‘0’); failure
Complexity O(1);
Nondeterministic decision algorithms generate a
zero or 1 as their output.
Definition of classes NP - hard and
NP - complete
• P is a set of all decision problems solvable by a
deterministic algorithm in polynomial time.
• NP is a set of all decision problems solvable by
a nondeterministic algorithm in polynomial
time.
• Since deterministic algorithms are special case
of nondeterministic ones, we can conclude
that PNP
Reducibility
Let L1 and L2 be problems. L1 reduces to L2 (L1
L2) if and only if there is a deterministic
polynomial time algorithm to solve L1 that
solves L2 in polynomial time
If L1 L2 and L2 L3 then L1 L3
Definition: NP-Hard problem: a problem L is NP
hard iff satisfiability reduces to L
Definition : NP-complete Problem :
• A problem L is NP-complete if and only if L is NP-hard
and L є NP.
• There are NP-hard problems that are not NP-complete.
Example :
• Halting problem is NP-hard decision problem, but it is
not NP-complete.
Halting Problem :
• To determine for an arbitrary deterministic algorithm A
and an input I whether algorithm A with input I ever
terminates (or enters an infinite loop).
Halting problem is not NP-complete;
but NP-hard
• Halting problem is un-decidable.
- Hence there exists no algorithm to solve this
problem.
- So, it is not in NP.
- So, it is not NP-complete.
Halting problem is NP-hard
• To show that Halting problem is NP-hard, we
show that satisfiability is halting problem.
• For this let us construct an algorithm A whose
input is a prepositional formula X.
- Suppose X has n variables.
- Algorithm A tries out all 2n possible truth
assignments and verifies if X is satisfiable.
Halting problem is NP-hard (Contd..)
- If it is satisfied then A stops.
- If X is not satisfiable, then A enters an infinite
loop.
- Hence A halts on input iff X is satisfiable.
- If we had a polynomial time algorithm for the
halting problem, then we could solve the
satisfiability problem in polynomial time using A
and X as input to the algorithm for the halting
problem .
- Hence the halting problem is an NP-hard problem
which is not in NP.
- So it is not NP-complete.
NP-HARD GRAPH AND SCHEDULING
PROBLEMS (CONTD..)
1. Chromatic Number Decision Problem (CNP)
• A coloring of a graph G = (V,E) is a function
f : V { 1,2, …, k} i V .
• If (U,V) E then f(u) f(v).
• The CNP is to determine if G has a coloring
for a given K.
• Satisfiability with at most three literals per
clause chromatic number problem.
CNP is NP-hard.
NP-HARD GRAPH AND SCHEDULING
PROBLEMS (contd..)
2. Directed Hamiltonian Cycle (DHC)
• Let G = (V,E) be a directed graph and length n =
V
• The DHC is a cycle that goes through every
vertex exactly once and then returns to the
starting vertex.
• The DHC problem is to determine if G has a
directed Hamiltonian Cycle.
Theorem : CNF (Conjunctive Normal Form)
satisfiability DHC
DHC is NP-hard.
NP-HARD GRAPH AND SCHEDULING
PROBLEMS (CONTD..)
3. Travelling Salesperson Decision Problem
(TSP) :
• The problem is to determine if a complete
directed graph G = (V,E) with edge costs
C(u, v) has a tour of cost at most M.
Theorem : Directed Hamiltonian Cycle (DHC)
TSP
TSP is NP-hard.
SOME SIMPLIIFIED NP-HARD
PROBLEMS
• An NP-hard problem L cannot be solved in
deterministic polynomial time.
• By placing enough restrictions on any NP
hard problem, we can arrive at a polynomial
solvable problem.
Examples.
(i) CNF(conjuctive normal form)- Satisfiability
with at most three literals per clause is NPhard.
If each clause is restricted to have at most
two literals then CNF-satisfiability is
polynomial solvable
(ii)Generating optimal code for a parallel
assignment statement is NP-hard,
- however if the expressions are restricted
to be simple variables, then optimal code can
be generated in polynomial time.
(iii)Generating optimal code for level one
directed a- cyclic graphs is NP-hard but
optimal code for trees can be generated in
polynomial time.
(iv)Determining if a planner graph is three
colorable is NP-Hard
- To determine if it is two colorable is a
polynomial complexity problem.
• https://www.youtube.com/watch?v=CY_klh5u
D-E
THANK YOU