Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Dynamic Programming

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →
Avatar for Gefei Gefei
February 26, 2014

Dynamic Programming

Avatar for Gefei

Gefei

February 26, 2014

Other Decks in Programming

Transcript

  1. Gefei Zhang Dipl.-Inform. and Dr.rer.nat. from LMU Software developer at

    Celonis GmbH Gefei Zhang: Dynamic Programming 2/13
  2. Celonis “The leading vendor for the analysis of operative process

    data created by IT systems” [IBM] Interactive, process-based Business Intelligence Next level of transparency in enterprise process mining http://www.celonis.de Gefei Zhang: Dynamic Programming 3/13
  3. Content Dynamic Programming Warming up: Fibonacci Introduction: Maximum weighted independent

    set in a path Application: Knapsack Gefei Zhang: Dynamic Programming 5/13
  4. Fibonacci f (n) = f (n − 1) + f

    (n − 2) simple, but horrible complexity Gefei Zhang: Dynamic Programming 6/13
  5. Fibonacci f (n) = f (n − 1) + f

    (n − 2) simple, but horrible complexity better: bottom up a = 1; b = 1 for i in 3..n a, b = b, a+b return b Gefei Zhang: Dynamic Programming 6/13
  6. Maximum weighted independent set in a path Example Index set

    I = 1, · · · n Array arri > 0, i ∈ I Gefei Zhang: Dynamic Programming 7/13
  7. Maximum weighted independent set in a path Example Index set

    I = 1, · · · n Array arri > 0, i ∈ I Wanted: set S ⊆ I, such that ∀x, y ∈ S, x > y, x − y > 1 Gefei Zhang: Dynamic Programming 7/13
  8. Maximum weighted independent set in a path Example Index set

    I = 1, · · · n Array arri > 0, i ∈ I Wanted: set S ⊆ I, such that ∀x, y ∈ S, x > y, x − y > 1 s∈S arrs max Gefei Zhang: Dynamic Programming 7/13
  9. Maximum weighted independent set in a path Example Index set

    I = 1, · · · n Array arri > 0, i ∈ I Wanted: set S ⊆ I, such that ∀x, y ∈ S, x > y, x − y > 1 s∈S arrs max Gefei Zhang: Dynamic Programming 7/13
  10. Maximum weighted independent set in a path Sn optimal n

    / ∈ Sn ⇔ Sn = Sn−1 Gefei Zhang: Dynamic Programming 8/13
  11. Maximum weighted independent set in a path Sn optimal n

    / ∈ Sn ⇔ Sn = Sn−1 n ∈ Sn ⇔ Sn = Sn−2 ∪ {n} Gefei Zhang: Dynamic Programming 8/13
  12. Maximum weighted independent set in a path Sn optimal n

    / ∈ Sn ⇔ Sn = Sn−1 n ∈ Sn ⇔ Sn = Sn−2 ∪ {n} An the sum for optimal Sn Gefei Zhang: Dynamic Programming 8/13
  13. Maximum weighted independent set in a path Sn optimal n

    / ∈ Sn ⇔ Sn = Sn−1 n ∈ Sn ⇔ Sn = Sn−2 ∪ {n} An the sum for optimal Sn n ∈ Sn ⇔ An = An−2 + arrn > An−1 Gefei Zhang: Dynamic Programming 8/13
  14. Maximum weighted independent set in a path Sn optimal n

    / ∈ Sn ⇔ Sn = Sn−1 n ∈ Sn ⇔ Sn = Sn−2 ∪ {n} An the sum for optimal Sn n ∈ Sn ⇔ An = An−2 + arrn > An−1 Recursion Ak = max(Ak−1, Ak−2 + arrk) Gefei Zhang: Dynamic Programming 8/13
  15. Maximum weighted independent set in a path Sn optimal n

    / ∈ Sn ⇔ Sn = Sn−1 n ∈ Sn ⇔ Sn = Sn−2 ∪ {n} An the sum for optimal Sn n ∈ Sn ⇔ An = An−2 + arrn > An−1 Recursion Ak = max(Ak−1, Ak−2 + arrk) Bottom up for i in 3..n A[i] = max(A[i-1], A[i-2]+arr[i]) Gefei Zhang: Dynamic Programming 8/13
  16. Maximum weighted independent set in a path Sn optimal n

    / ∈ Sn ⇔ Sn = Sn−1 n ∈ Sn ⇔ Sn = Sn−2 ∪ {n} An the sum for optimal Sn n ∈ Sn ⇔ An = An−2 + arrn > An−1 Recursion Ak = max(Ak−1, Ak−2 + arrk) Bottom up for i in 3..n A[i] = max(A[i-1], A[i-2]+arr[i]) Backtracking: from A to S Ai > Ai−1 ⇒ i ∈ S and i − 1 / ∈ S Ai < Ai−1 ⇒ i / ∈ S Gefei Zhang: Dynamic Programming 8/13
  17. Knapsack Problem Index set I = 1, · · ·

    , n Given: {vi }, {wi }, i ∈ I, K > 0 Gefei Zhang: Dynamic Programming 9/13
  18. Knapsack Problem Index set I = 1, · · ·

    , n Given: {vi }, {wi }, i ∈ I, K > 0 Wanted: set S ⊂ I, such that i∈S wi ≤ K Gefei Zhang: Dynamic Programming 9/13
  19. Knapsack Problem Index set I = 1, · · ·

    , n Given: {vi }, {wi }, i ∈ I, K > 0 Wanted: set S ⊂ I, such that i∈S wi ≤ K i∈S vi max Gefei Zhang: Dynamic Programming 9/13
  20. Knapsack Problem Index set I = 1, · · ·

    , n Given: {vi }, {wi }, i ∈ I, K > 0 Wanted: set S ⊂ I, such that i∈S wi ≤ K i∈S vi max Gefei Zhang: Dynamic Programming 9/13
  21. Knapsack Problem Index set I = 1, · · ·

    , n Given: {vi }, {wi }, i ∈ I, K > 0 Wanted: set S ⊂ I, such that i∈S wi ≤ K i∈S vi max Example Gefei Zhang: Dynamic Programming 9/13
  22. Knapsack Problem Sn,k optimal n / ∈ Sn,k ⇔ Sn,k

    = Sn−1,k n ∈ Sn,k ⇔ Sn,k = Sn−1,k−wn ∪ {n} Vn,k the sum n ∈ Sn,k ⇔ Vn−1,k > Vn−1,k−wn + vn Recursion Vn,k = max(Vn−1,k, Vn−1,k−wn + vn) Gefei Zhang: Dynamic Programming 10/13
  23. Knapsack Problem Bottom up for i in 1..n for c

    in 1..K V[i,c] = max(V[i-1,c], V[i-1, c-w[i]] + v[i]) Backtracking Vn,k = Vn−1,k iff n / ∈ S Gefei Zhang: Dynamic Programming 11/13
  24. Summary Dynamic Programming Recursion bottom up Evil mostly in finding

    recursion Applications in Graph Theory, Computer Linguistics, Bioinformatics, etc. Gefei Zhang: Dynamic Programming 12/13
  25. Summary Dynamic Programming Recursion bottom up Evil mostly in finding

    recursion Applications in Graph Theory, Computer Linguistics, Bioinformatics, etc. Challenge Egg Dropping Gefei Zhang: Dynamic Programming 12/13