Approximation Algorithms

Document Sample
Approximation Algorithms Powered By Docstoc
					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     The only way we don’t
                           satisfy the clause is if we
     T         T   T   T         select the last
     T         T   T   F       assignment. This
                           happens only 1/8th of the
     T         T   F   T              time.

     T         T   F   F
     T         F   T   T
     T         F   T   F
     T         F   F   T
     F         F   F   F

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:4
posted:6/25/2012
language:English
pages:21