Approximation Algorithms Lecture for CS 302 What is a NP problem? Given an instance of the problem, V, and a ‘certificate’, C, we.
Download ReportTranscript 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.