130 likes | 276 Views
PTAS’s with Scaling. Additional material. PTAS’s with Scaling. Scaling technique was discussed in Shortest Paths lecture Often used for obtaining PTAS’s: Polynomial time approximation schemes What is a PTAS? Example: Knapsack. C-approximation.
E N D
PTAS’s with Scaling Additional material Algorithms and Networks: Shortest paths
PTAS’s with Scaling • Scaling technique was discussed in Shortest Paths lecture • Often used for obtaining PTAS’s: Polynomial time approximation schemes • What is a PTAS? • Example: Knapsack Algorithms and Networks: Shortest paths
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 (minimization), or • OPT / value(A(X)) <= C (maximization) Algorithms and Networks: Shortest paths
PTAS • A Polynomial Time Approximation Scheme is an algorithm, that gets two inputs: the “usual” input X, and a real value e>0, and • For each fixed e>0, the algorithm • Uses polynomial time • Is an (1+e)-approximation algorithm Algorithms and Networks: Shortest paths
FPTAS • A Fully Polynomial Time Approximation Scheme is an algorithm, that gets two inputs: the “usual” input X, and a real value e>0, and • For each fixed e>0, the algorithm • Is an (1+e)-approximation algorithm • The algorithm uses time that is polynomial in the size of X and 1/e. Algorithms and Networks: Shortest paths
Example: Knapsack • Given: n items each with a positive integer weight w(i) and value v(i) (1 <= i <= n), integer B • Question: select items with total weight at most B such that the total value is as large as possible Algorithms and Networks: Shortest paths
A DP for Knapsack • Let P be the maximum value of all items • We can solve the problem in O(n2P) 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) = infinity, if Q>0 • M(i+1,Q) = min { M(i,Q), M(i,Q-v(i+1))+w(i+1)} • … Algorithms and Networks: Shortest paths
Scaling for Knapsack • Take input for knapsack • Throw away all items that have weight larger than B (never used) • Let c be some constant • Build new input: do not change weights, but set new values v’(i) = |_ v(i) / c _| (round down) • Solve scaled instance with DP optimally • Output this solution: approximates solution for original instance Algorithms and Networks: Shortest paths
Questions • How do we set c, such that • Approximation ratio good enough • Polynomial time Algorithms and Networks: Shortest paths
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 Algorithms and Networks: Shortest paths
Setting c • Set c = e P / n • This is a FPTAS • Running time: • Largest value of an item is at most P/c = P / (e P / n) = n/e . • Running time is O(n2 * n/e) = O(n3 /e) • Approximation: … next Algorithms and Networks: Shortest paths
e-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(e P / n) = OPT – eP • OPT / OPT – eP <= OPT / OPT – eOPT = 1/1-e <=1+ e Algorithms and Networks: Shortest paths
Comments • Technique works for many problems • .. But not always … Algorithms and Networks: Shortest paths