DAA Unit-6.B
DAA Unit-6.B
ALGORITHMS
snistforum.com
Tractability
Some problems are intractable:
as they grow large, we are unable to solve
them in reasonable time
What constitutes reasonable time?
Standard working definition: polynomial time
On an input of size n the worst-case running
time is O(nk) for some constant k
O(n2), O(n3), O(1), O(n lg n), O(2n), O(nn), O(n!)
Polynomial time: O(n2), O(n3), O(1), O(n lg n)
Not in polynomial time: O(2n), O(nn), O(n!)
snistforum.com
Polynomial-Time Algorithms
Are some problems solvable in polynomial
time?
Of course: many algorithms we’ve studied
provide polynomial-time solutions to some
problems
Are all problems solvable in polynomial time?
No: Turing’s “Halting Problem” is not solvable
by any computer, no matter how much time is
given
Most problems that do not yield polynomial-
time algorithms are either optimization or
decision problems.
snistforum.com
Optimization/Decision
Problems
Optimization Problems
An optimization problem is one which asks,
“What is the optimal solution to problem X?”
Examples:
0-1 Knapsack
Fractional Knapsack
Minimum Spanning Tree
Decision Problems
An decision problem is one with yes/no
answer
Examples:
Does a graph G have a MST of weight W?
snistforum.com
Optimization/Decision
Problems
An optimization problem tries to find an optimal
solution
A decision problem tries to answer a yes/no question
Many problems will have decision and optimization
versions
Eg: Traveling salesman problem
optimization: find hamiltonian cycle of minimum weight
decision: is there a hamiltonian cycle of weight k
Some problems are decidable, but intractable:
as they grow large, we are unable to solve them in
reasonable time
Is there a polynomial-time algorithm that solves the problem?
snistforum.com
The Class P
P: the class of decision problems that have
polynomial-time deterministic algorithms.
That is, they are solvable in O(p(n)), where p(n) is a
polynomial on n
A deterministic algorithm is (essentially) one that always
computes the correct answer
Why polynomial?
if not, very inefficient
nice closure properties
the sum and composition of two polynomials are always polynomials
too
snistforum.com
Sample Problems in P
Fractional Knapsack
MST
Sorting
Others?
snistforum.com
The class NP
NP: the class of decision problems that are solvable
in polynomial time on a nondeterministic machine
(or with a nondeterministic algorithm)
(A determinstic computer is what we know)
A nondeterministic computer is one that can
“guess” the right answer or solution
Think of a nondeterministic computer as a parallel
machine that can freely spawn an infinite number of
processes
Thus NP can also be thought of as the class of
problems
whose solutions can be verified in polynomial time
Note that NP stands for “Nondeterministic
Polynomial-time”
snistforum.com
Sample Problems in NP
Fractional Knapsack
MST
Sorting
Others?
Hamiltonian Cycle (Traveling Salesman)
Graph Coloring
Satisfiability (SAT)
the problem of deciding whether a given
Boolean formula is satisfiable
snistforum.com
The Satisfiability (SAT)
Problem
Satisfiability (SAT):
Given a Boolean expression on n variables,
can we assign values such that the
expression is TRUE?
Ex: ((x1 x2) ((x1 x3) x4)) x2
Seems simple enough, but no known
deterministic polynomial time algorithm
exists
Easy to verify in polynomial time!
snistforum.com
Example: CNF satisfiability
This problem is in NP. Nondeterministic
algorithm:
Guess truth assignment
Check assignment to see if it satisfies CNF formula
Example:
(A¬B ¬C ) (¬A B) (¬ B D F ) (F ¬ D)
Truth assignments:
ABCDEF
0 1 1 0 1 0
1 0 0 0 0 1
1 1 0 0 0 1
... (how many more?)
snistforum.com
Reduction
A problem R can be reduced to another problem
Q if any instance of R can be rephrased to an
instance of Q, the solution to which provides a
solution to the instance of R
This rephrasing is called a transformation
Intuitively: If R reduces in polynomial time to Q,
R is “no harder to solve” than Q
Example: lcm(m, n) = m * n / gcd(m, n),
lcm(m,n) problem is reduced to gcd(m, n)
problem
snistforum.com
NP-Hard and NP-Complete
If R is polynomial-time reducible to Q, we
denote this R p Q
Definition of NP-Hard and NP-Complete:
If all problems R NP are polynomial-time
reducible to Q, then Q is NP-Hard
We say Q is NP-Complete if Q is NP-Hard
and Q NP
If R p Q and R is NP-Hard, Q is also NP-Hard
(why?)
snistforum.com
Practical Implication
Given a problem that is known to be NP-
Complete
Try to solve it by designing a polynomial-time
algorithm?
Prove P=NP
snistforum.com
Appendix
snistforum.com
snistforum.com
snistforum.com