Approximation Algorithms for Knapsack Problems Tsvi Kopelowitz Modified
Approximation Algorithms for Knapsack Problems Tsvi Kopelowitz Modified by Ariel Rosenfeld 1
Knapsack Given: a set S of n objects with weights and values, and a weight bound: ◦ w 1, w 2, …, wn, B (weights, weight bound). ◦ v 1, v 2, …, vn (values - profit). Find: subset of S with total weight at most B, and maximum total value. Formally: Problem is known to be NP-hard 2
Assumptions . (every item can be added to T) . (non-negative values) Values, weights, and bound are all integers. Note: This is a maximum problem. Define: OPT = The optimal solution. We will see a 2 -approximation for two versions of knapsack. 3
Uniform Knapsack (simple form) (value=weight) 2 -approximation algorithm: ◦ Sort the items such that v 1 ≥ v 2 ≥ … ≥ vn. ◦ Pick such that. and 4
Uniform Knapsack (proff) Claim: . Proof: ◦ Assume (by contradiction): ◦ By the algorithm: ◦ . => =>contradiction. (Since items were sorted) 5
2 -approximation (general knapsack) Define Sort Pick ratio: items such that r 1 ≥ r 2 ≥ … ≥ rn. such that. and If( ) return else return A. 6
2 -approximation try it yourself… 7
2 -approximation (general knapsack) Claim: Proof sketch (fill the details yourselves): Consider fractional knapsack (where we can take some of each item)– the optimal solution is A’= (A and a fraction of vj+1. ) ◦ . ◦. ◦ 8
A DP algorithm for knapsack A 1 2 3 j n vmax Upper bound on optimal profit i n A(i, j) = Smallest weight subset of objects 1, …, i with a total value of j. 9
A DP algorithm for knapsack The result is: max j such that A(n, j) ≤ B. The runtime is: O(n 2 vmax) Pseudo-polynomial 10
Definitions Definition: Pseudo-polynomial If input of integers is given in unary form, runs in polynomial time. Definition: Fully Polynomial Time Approximation Scheme (FPTAS) Given ε, delivers a solution with a ratio of (1 - ε) for maximum and a ratio of (1+ ε) for minimum, and runs in time polynomial in the size of the input and (1/ε) 11
FPTAS for knapsack The Idea – use scaling!! Given error bound For each object i, define . . Use DP to find optimal solution OPT’ for the rounded values. Return the set OPT’ with the original values. 12
Correctness Claim: Proof: For every i: . (1) => (3) (2) (4) 13
Correctness Proof continued: (1) (3) (2) (4) � 14
Complexity and Notes Time: algorithm is a FPTAS. 15
- Slides: 15