lecture approximation algorithms lecture approximation
play

Lecture: Approximation Algorithms Lecture: Approximation Algorithms - PowerPoint PPT Presentation

Lecture: Approximation Algorithms Lecture: Approximation Algorithms Jannik Matuschke November 5, 2018 Dynamic Programming Example I: The Knapsack Problem The Knapsack Problem Input: set of n items I , capacity B , for each item i [ n ]:


  1. Lecture: Approximation Algorithms Lecture: Approximation Algorithms Jannik Matuschke November 5, 2018

  2. Dynamic Programming Example I: The Knapsack Problem

  3. The Knapsack Problem Input: set of n items I , capacity B , for each item i ∈ [ n ]: value v i , size s i (all integers) Task: find S ⊆ I with � i ∈ S s i ≤ B , maximizing value � i ∈ S v i

  4. A dynamic program Idea: store all “good” subsets of { 1 , . . . , j } in A ( j )

  5. A dynamic program Idea: store all “good” subsets of { 1 , . . . , j } in A ( j ) Dominance : X � Y : ⇔ s ( X ) ≤ s ( Y ) and v ( X ) ≥ v ( Y ) We don’t need Y if we have X ...

  6. A dynamic program Idea: store all “good” subsets of { 1 , . . . , j } in A ( j ) Dominance : X � Y : ⇔ s ( X ) ≤ s ( Y ) and v ( X ) ≥ v ( Y ) We don’t need Y if we have X ... Algorithm 1 (DP for Knapsack) 1 A (0) := {∅} 2 for j := 1 to n A ( j ) := A ( j − 1) for each X ∈ A ( j ) if s ( X ) + s j ≤ B then add X ∪ { j } to A ( j ) while ( ∃ X , Y ∈ A ( j ) with X � Y ) remove Y from A ( j ) 3 return X ∈ A ( n ) maximizing v ( X )

  7. An approximation scheme Idea: make V smaller by scaling all v i down (and rounding)

  8. An approximation scheme Idea: make V smaller by scaling all v i down (and rounding) Let’s try to get a (1 − ε )-approximation for some ε > 0.

  9. An approximation scheme Idea: make V smaller by scaling all v i down (and rounding) Let’s try to get a (1 − ε )-approximation for some ε > 0. Algorithm 2 (FPTAS for Knapsack) µ := ε M 1 M := max { v i : i ∈ [ n ] , s i ≤ B } , n 2 v ′ i := ⌊ v i /µ ⌋ for all i ∈ [ n ] 3 Solve instance with v ′ instead of v , using Algorithm 1.

  10. An approximation scheme Idea: make V smaller by scaling all v i down (and rounding) Let’s try to get a (1 − ε )-approximation for some ε > 0. Algorithm 2 (FPTAS for Knapsack) µ := ε M 1 M := max { v i : i ∈ [ n ] , s i ≤ B } , n 2 v ′ i := ⌊ v i /µ ⌋ for all i ∈ [ n ] 3 Solve instance with v ′ instead of v , using Algorithm 1. Polynomial-time Approximation Scheme (PTAS): (1 − ε )-approximation for every ε > 0 Fully Polynomial-time Approximation Scheme (FPTAS): (1 − ε )-approximation for every ε > 0, running time polynomial in encoding and 1 /ε

Recommend


More recommend