0% found this document useful (0 votes)
25 views28 pages

Module 1 NP Completeness

The document provides an overview of algorithms, focusing on NP-completeness and its implications in computational theory. It discusses the classification of problems into P, NP, NP-complete, and NP-hard categories, emphasizing the challenges of solving NP-complete problems efficiently. Additionally, it covers concepts such as polynomial reductions and the significance of proving NP-completeness in practice.

Uploaded by

khushivj.917
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views28 pages

Module 1 NP Completeness

The document provides an overview of algorithms, focusing on NP-completeness and its implications in computational theory. It discusses the classification of problems into P, NP, NP-complete, and NP-hard categories, emphasizing the challenges of solving NP-complete problems efficiently. Additionally, it covers concepts such as polynomial reductions and the significance of proving NP-completeness in practice.

Uploaded by

khushivj.917
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Analysis of Algorithms

NP Completeness

1
Analysis of Algorithms
• Module 1: Introduction to Algorithms
• Module 2 : Divide and Conquer Approach
• Module 3 : Greedy Approach
• Module 4: Dynamic Programming
• Module 5 : Backtracking & Branch and Bound
• Module 6 : String Matching

2
Learning Objectives
• P Problem
• NP Complete Problem
• NP Hard Problem

3
NP-Completeness
• So far we’ve seen a lot of good news!
• Such-and-such a problem can be solved quickly (i.e., in
close to linear time, or at least a time that is some small
polynomial function of the input size)
• NP-completeness is a form of bad news!
• Evidence that many important problems can not be
solved quickly.
• NP-complete problems really come up all the time!

4
Optimization & Decision
Problems
• Decision problems
• Given an input and a question regarding a problem,
determine if the answer is yes or no
• Optimization problems
• Find a solution with the “best” value
• Optimization problems can be cast as decision
problems that are easier to study
• E.g.: Shortest path: G = un-weighted directed graph
• Find a path between u and v that uses the fewest edges
• Does a path exist from u to v consisting of at most k edges?

5
Class of “P” Problems
• Class P consists of (decision) problems that are solvable
in polynomial time
• Polynomial-time algorithms
• Worst-case running time is O(nk), for some constant k

• Examples of polynomial time:


• O(n2), O(n3), O(1), O(n lg n)
• Examples of non-polynomial time:
• O(2n), O(nn), O(n!)

6
Tractable/Intractable Problems
• Problems in P are also called tractable
• Problems not in P are intractable or unsolvable
• Can be solved in reasonable time only for small inputs
• Or, can not be solved at all

• Are non-polynomial algorithms always worst than


polynomial algorithms?
- n1,000,000 is technically tractable, but really impossible
- nlog log log n is technically intractable, but easy

7
Example of Unsolvable Problem
• Turing discovered in the 1930’s that there are
problems unsolvable by any algorithm.
• The most famous of them is the halting problem
• Given an arbitrary algorithm and its input, will that
algorithm eventually halt, or will it continue forever in
an “infinite loop?”

8
Examples of Intractable Problems

9
Intractable Problems
• Can be classified in various categories based on
their degree of difficulty, e.g.,
• NP
• NP-complete
• NP-hard
• Let’s define NP algorithms and NP problems …

10
Nondeterministic and NP Algorithms
Nondeterministic algorithm = two stage procedure:
1) Nondeterministic (“guessing”) stage:
generate randomly an arbitrary string that can be thought
of as a candidate solution (“certificate”)

2) Deterministic (“verification”) stage:


take the certificate and the instance to the problem and
returns YES if the certificate represents a solution

NP algorithms (Nondeterministic polynomial)


verification stage is polynomial
11
Class of “NP” Problems
• Class NP consists of problems that could be solved by
NP algorithms
• i.e., verifiable in polynomial time

• If we were given a “certificate” of a solution, we could


verify that the certificate is correct in time polynomial
to the size of the input
• Warning: NP does not mean “non-polynomial”

12
E.g.: Hamiltonian Cycle

• Given: a undirected graph G = (V, E), determine a


simple cycle that contains each vertex in V
• Each vertex can only be visited once

• Certificate: hamiltonian

• Sequence: 〈v1, v2, v3, …, v|V|〉

not
hamiltonian

13
Is P = NP?
• Any problem in P is also in NP: P

NP
P ⊆ NP

• The big (and open question) is whether NP ⊆ P or


P = NP
• i.e., if it is always easy to check a solution, should it also
be easy to find a solution?

• Most computer scientists believe that this is false


but we do not have a proof …
14
NP-Completeness (informally)
P NP-complete
• NP-complete problems are
NP
defined as the hardest

problems in NP

• Most practical problems turn out to be either P or


NP-complete.

• Study NP-complete problems …


15
Reductions
• Reduction is a way of saying that one problem is “easier”
than another.
• We say that problem A is easier than problem B,
(i.e., we write “A ≤ B”)
if we can solve A using the algorithm that solves B.
• Idea: transform the inputs of A to inputs of B

yes
yes
α β
f Problem B no
no
Problem A
16
Polynomial Reductions
• Given two problems A, B, we say that A is

polynomially reducible to B (A ≤p B) if:

1. There exists a function f that converts the input of A

to inputs of B in polynomial time

2. A(i) = YES ⇔ B(f(i)) = YES

17
NP-Completeness (formally)
• A problem B is NP-complete if: P NP-complete

(1) B ∈ NP NP

(2) A ≤p B for all A ∈ NP

• If B satisfies only property (2) we say that B is NP-hard

• No polynomial time algorithm has been discovered for an


NP-Complete problem

• No one has ever proven that no polynomial time algorithm


can exist for any NP-Complete problem
18
Implications of Reduction
yes
yes
α β
f Problem B no
no
Problem A

- If A ≤p B and B ∈ P, then A ∈ P
- if A ≤p B and A ∉ P, then B ∉ P

19
Proving Polynomial Time
yes
yes
α β Polynomial time
f algorithm to decide B no
no
Polynomial time algorithm to decide A
1. Use a polynomial time reduction algorithm to
transform A into B
2. Run a known polynomial time algorithm for B
3. Use the answer for B as the answer for A

20
Proving NP-Completeness
Theorem: If A is NP-Complete and A ≤p B

⇒ B is NP-Hard

In addition, if B ∈ NP

⇒ B is NP-Complete

Proof: Assume that B ∈ P

Since A ≤p B ⇒ A ∈ P contradiction!

⇒ B is NP-Hard
21
Proving NP-Completeness In Practice

• Prove that the problem B is in NP


• A randomly generated string can be checked in
polynomial time to determine if it represents a solution

• Show that one known NP-Complete problem can


be transformed to B in polynomial time
• No need to check that all NP-Complete problems are
reducible to B

22
Revisit “Is P = NP?”
P NP-complete

NP

Theorem: If any NP-Complete problem can be solved


in polynomial time ⇒ then P = NP.

23
P & NP-Complete Problems
• Shortest simple path
• Given a graph G = (V, E) find a shortest path from a
source to all other vertices

• Polynomial solution: O(VE)

• Longest simple path


• Given a graph G = (V, E) find a longest path from a
source to all other vertices

• NP-complete
24
P & NP-Complete Problems
• Euler tour
• G = (V, E) a connected, directed graph find a cycle that
traverses each edge of G exactly once (may visit a vertex
multiple times)
• Polynomial solution O(E)

• Hamiltonian cycle
• G = (V, E) a connected, directed graph find a cycle that
visits each vertex of G exactly once
• NP-complete
25
NP-naming convention
• NP-complete - means problems that are 'complete'
in NP, i.e. the most difficult to solve in NP
• NP-hard - stands for 'at least' as hard as NP (but
not necessarily in NP);
• NP-easy - stands for 'at most' as hard as NP (but
not necessarily in NP);
• NP-equivalent - means equally difficult as NP, (but
not necessarily in NP);

26
Examples NP-complete and
NP-hard problems
NP-complete

NP-hard

27
Reference
• T.H. Coreman , C.E. Leiserson,R.L. Rivest, and C.
Stein, “Introduction to algorithms”, Fourth edition ,
PHI publication.

28

You might also like