180 likes | 404 Views
Approximation Algorithms for Knapsack Problems. Tsvi Kopelowitz. Given: a set S of n objects with weights and values, and a weight bound: w 1 , w 2 , …, w n , B (weights, weight bound). v 1 , v 2 , …, v n (values - profit).
E N D
Approximation Algorithms for Knapsack Problems TsviKopelowitz
Given: a set S of n objects with weights and values, and a weight bound: • w1, w2, …, wn, B (weights, weight bound). • v1, v2, …, vn (values - profit). • Find: subset of S with total weight at most B, and maximum total value. • Problem is known to be NP-hard Knapsack
. • . • Values, weights, and bound are all integers. Note: • This is a maximum problem. • Define: OPT = The optimal solution. • We will see a ½ approximation for two versions of knapsack. Assumptions
Uniform Knapsack • (value=weight) • ½-approximation algorithm: • Sort the items such that v1 ≥ v2 ≥ … ≥ vn. • Pick such that and .
Uniform Knapsack • Claim: . • Proof: • Assume (by contradiction): . • => . • => =>contradiction. (Since items were sorted)
Define: • Sort items such that r1 ≥ r2 ≥ … ≥ rn. • Pick such that and . • If( ) return • else return A. ½-approximation (general knapsack)
Claim: Proof: • Consider fractional knapsack – the optimal solution is A’= A and a fraction of vj+1. • . • . ½-approximation (general knapsack)
A DP algorithm for knapsack A 1 2 3 j n vmax 1 2 3 i n Upper bound on optimal profit A(i,j) = Smallest weight subset of objects 1,…,i with a total value of j.
The result is: max j such that A(n, j) ≤ B. • The runtime is: O(n2vmax) • Pseudo-polynomial A DP algorithm for knapsack
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/ε) Definitions
FPTAS for knapsack The Idea – use scaling!! • Given error bound , define . • For each object i, define . • Use DP to find optimal solution OPT’ for the rounded values. • Return the set OPT’ with the original values.
Correctness • Claim: Proof: For every i: . (1) => (3) (2) (4)
Correctness Proof continued: (1) (3) (2) (4)
Complexity and Notes Time: • algorithm is a FPTAS.