170 likes | 329 Views
This paper explores approximation algorithms tailored for the NP-hard knapsack problem, where a set of objects with weights and values must be selected to maximize total value without exceeding a specified weight limit. We introduce a 2-approximation approach for both uniform and general knapsack variations, utilizing sorting and dynamic programming techniques. Additionally, we discuss the Fully Polynomial Time Approximation Scheme (FPTAS) which provides solutions within a defined error margin, optimizing performance in practical scenarios.
E N D
Approximation Algorithms for Knapsack Problems TsviKopelowitz Modified by Ariel Rosenfeld
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. Formally: • Problem is known to be NP-hard Knapsack
. (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. Assumptions
Uniform Knapsack (simple form) • (value=weight) • 2-approximation algorithm: • Sort the items such that v1 ≥ v2 ≥ … ≥ vn. • Pick such that and .
Uniform Knapsack (proff) • Claim: . • Proof: • Assume (by contradiction): . • By the algorithm: => . • => =>contradiction. (Since items were sorted)
Define ratio: • Sort items such that r1 ≥ r2 ≥ … ≥ rn. • Pick such that and . • If( ) return • else return A. 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.) • . • . 2-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.