CSCI 3160 Design and Analysis of Algorithms Chengyu Lin
CSCI 3160 Design and Analysis of Algorithms Chengyu Lin
Approximation algorithms 。Motivation Some (optimization)problems are very hard Unlikely to have efficient polynomial-time algorithms Approximation algorithms -Algorithms to find approximate solutions to optimization problems
Approximation algorithms • Motivation – Some (optimization) problems are very hard – Unlikely to have efficient polynomial-time algorithms • Approximation algorithms – Algorithms to find approximate solutions to optimization problems
Optimization Many problems are actually optimization problems i.e-the task can be naturally rephrased as finding a maximal/minimal solution For example:Vertex Cover problem
Optimization • Many problems are actually optimization problems • i.e – the task can be naturally rephrased as finding a maximal/minimalsolution • For example: Vertex Cover problem
Approximation Algorithm An algorithm that returns near-optimal solutions in polynomial time Approximation Ratio p(n): Define:C*as a optimal solution and C is the solution produced by the approximation algorithm -max (C/C*,C*/C)<=p(n) -Maximization problem:0<C<=C*,thus C*/C shows that C*is larger than c by p(n) Minimization problem:0<C*<=C,thus C/C* shows that C is larger than C*by p(n)
Approximation Algorithm • An algorithm that returns near-optimal solutions in polynomial time • Approximation Ratio ρ(n): – Define: C* as a optimal solution and C is the solution produced by the approximation algorithm – max (C/C*, C*/C) <= ρ(n) – Maximization problem: 0 < C <= C*, thus C*/C shows that C* is larger than C by ρ(n) – Minimization problem: 0 < C* <= C, thus C/C* shows that C is larger than C* by ρ(n)
Techniques A variety of techniques to design and analyze many approximation algorithms for computationally hard problems: Combinatorial algorithms Linear Programming based algorithms Semi-definite Programming based algorithms
Techniques • A variety of techniques to design and analyze many approximation algorithms for computationally hard problems: – Combinatorial algorithms – Linear Programming based algorithms – Semi-definite Programming based algorithms