Approximation Algorithms Lecture for CS 302 What is a NP problem? Given an instance of the problem, V, and a ‘certificate’, C, we.
Download
Report
Transcript Approximation Algorithms Lecture for CS 302 What is a NP problem? Given an instance of the problem, V, and a ‘certificate’, C, we.
Approximation Algorithms
Lecture for CS 302
What is a NP problem?
Given an instance of the problem, V, and a
‘certificate’, C, we can verify V is in the
language in polynomial time
All problems in P are NP problems
–
Why?
VERTEX-COVER
Given a graph, G, return the smallest set of
vertices such that all edges have an end
point in the set
HAMILTONIAN PATH
Given a graph, G, find a path that visits every
vertex exactly once
Alt version: Find the path with the minimum
weight
What is NP-Complete?
A problem is NP-Complete if:
–
–
It is in NP
Every other NP problem has a polynomial time
reduction to this problem
NP-Complete problems:
–
–
–
–
3-SAT
VERTEX-COVER
CLIQUE
HAMILTONIAN-PATH (HAMPATH)
Applications
Applications
SAT is used to verify circuit design
NEED MORE EXAMPLES. WANT
PICTURES
Dilemma
NP problems need solutions in real-life
We only know exponential algorithms
What do we do?
Accuracy
NP problems are often optimization problems
It’s hard to find the EXACT answer
Maybe we just want to know our answer is
close to the exact answer?
Approximation Algorithms
Can be created for optimization problems
The exact answer for an instance is OPT
The approximate answer will never be far
from OPT
We CANNOT approximate decision problems
k-approximation
S is the approx. answer, OPT is optimal
Maximization
–
k*OPT ≤ S ≤ OPT
Minimization
–
OPT ≤ S ≤ k*OPT
Approximate Vertex-Cover
Let S be the cover
Pick an edge (u,v) in the graph
Add it’s end-points u and v to S
Remove any edge that neighbors u or v
Repeat until there are no edges left
Approximate Vertex-Cover
OPT must cover every edge so either u or v
must be in the cover => OPT > ½|S|
=> 2*OPT ≥ |S|
We have a 2-approximation
Traveling Salesperson Problem
Given a graph, find a minimum weight
hamiltonian path
There is a 2-approximation based on
MINIMUM SPANNING TREES
Minimum Spanning Tree
Given a graph, G, a Spanning Tree of G is a
subgraph with no cycles that connects every
vertex together
A MST is a Spanning Tree with minimal
weight
Finding a MST
Finding a MST can be done in polynomial
time using PRIM’S ALGORITHM or
KRUSKAL’S ALGORITHM
Both are greedy algorithms
Details can be found on Wikipedia
MST vs HAMPATH
Any HAMPATH becomes a Spanning Tree by
removing an edge
cost(MST) ≤ cost(min-HAMPATH)
Approximate TSP
Given a complete graph G
Compute G’s MST, M
The tour is the pre-order traversal of M
This is a 2-approximation
Approximating 3-SAT
f is a Boolean formula in 3-CNF form if:
f ( x1 x2 x3 )(x2 x4 x5 )...
What’s the optimization version of 3-SAT?
Satisfy as many clauses as you can
Approximating 3-SAT
Algorithm:
–
–
For each variable xi assign True with probability
½, False with probability ½
This satisfies 7/8ths of the clauses in expectation
Approximating 3-SAT
x1 x2 x3
x1 x2 x3
T
T
T
T
T
T
T
F
T
T
F
T
T
T
F
F
T
F
T
T
T
F
T
F
T
F
F
T
F
F
F
F
The only way we don’t
satisfy the clause is if we
select the last
assignment. This
happens only 1/8th of the
time.