Download presentation
Presentation is loading. Please wait.
Published byAlexia Clarke Modified over 9 years ago
1
1 Approximation Through Scaling Algorithms and Networks 2014/2015 Hans L. Bodlaender Johan M. M. van Rooij
2
2 C-approximation Optimization problem: output has a value that we want to maximize or minimize An algorithm A is an C-approximation algorithm, if for all inputs X, we have that (with OPT the optimal value) value(A(X)) / OPT ≤ C (minimisation), or OPT / value(A(X)) ≤ C (maximisation)
3
3 PTAS A Polynomial Time Approximation Scheme is an algorithm, that gets two inputs: the “usual” input X, and a real value >0. For each fixed >0, the algorithm Uses polynomial time Is an (1+)-approximation algorithm
4
4 FPTAS A Fully Polynomial Time Approximation Scheme is an algorithm, that gets two inputs: the “usual” input X, and a real value >0, and For each fixed >0, the algorithm Is an (1+)-approximation algorithm The algorithm uses time that is polynomial in the size of X and 1/.
5
5 Example: Knapsack Given: n items each with a positive integer weight w(i) and integer value v(i) (1 ≤ i ≤ n), and an integer B. Question: select items with total weight at most B such that the total value is as large as possible.
6
6 Dynamic Programming for Knapsack Let P be the maximum value of all items. We can solve the problem in O(n 2 P) time with dynamic programming: Tabulate M(i,Q): minimum total weight of a subset of items 1, …, i with total value Q for Q at most nP M(0,0) = 0 M(0,Q) = ∞, if Q>0 M(i+1,Q) = min{ M(i,Q), M(i,Q-v(i+1)) + w(i+1) }
7
7 Scaling for Knapsack Take input for knapsack Throw away all items that have weight larger than B (they are never used) Let c be some constant Build new input: do not change weights, but set new values v’(i) = v(i) / c Solve scaled instance with DP optimally Output this solution: approximates solution for original instance
8
8 The Question is…. How do we set c, such that Approximation ratio good enough Polynomial time
9
9 Approximation ratio Consider optimal solution Y for original problem, value OPT Value in scaled instance: at least OPT/c – n At most n items, for each v(i)/c - v(i)/c <1 So, DP finds a solution of value at least OPT/c –n for scaled problem So, value of approximate solution for original instance is at least c*(OPT/c –n) = OPT - nc
10
10 Setting c Set c = P/(2n) This is a FPTAS Running time: Largest value of an item is at most P/c = P / (P/(2n)) = 2n/. Running time is O(n 2 * 2n/) = O(n 3 /) Approximation: … next
11
11 -approximation Note that each item is a solution (we removed items with weight more than B). So OPT ≥ P. Algorithm gives solution of value at least: OPT – nc = OPT – n( P / (2n) ) = OPT – /2 P OPT / (OPT – /2 P)≤ OPT / (OPT – /2 OPT) = 1/(1-/2) ≤ 1+
12
12 Comments Technique works for many problems .. But not always …
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.