Download presentation

Presentation is loading. Please wait.

Published byAudrey Offord Modified over 2 years ago

1
CSCI 6212 Design and Analysis of Algorithms Dynamic Programming Dr. Juman Byun The George Washington University Please drop this course if you have not taken the following prerequisite. Sometimes enthusiasm alone is not enough. CSci 1311: Discrete Structures I (3) CSci 1112: Algorithms and Data Structures (3)

2
Example: Rod Cutting n=4

3
Example: Rod Cutting length iprice p i 1$1 2$5 3$8 4 $9 $10 5$10 6$17 7 8$20 9$24 10$30 Maximum Revenue, r 4 ? n=4

4
r n when n=4 ? ip[i] 1$1 2$5 3$8 4 $9 $10 5$10 6$17 7 8$20 9$24 10$30 $9$1$8$5 $8$1 $5$1$5$1$5$1 $10

5
Notation $5 $10 rod into 2 pieces4-inch Decomposition: 4 = 2 + 2 r 4 = $5 + $5 Maximum Revenue:

6
Notation rnrn rnrn rod into k piecesn-inch Decomposition: n = i 1 + i 2 + … + i k Maximum Revenue:

7
General Procedure to Find Optimal Rod Cutting Uncut Rod of length npnpn r 1 + r n-1 r 2 + r n-2 r n-2 + r 2 r n-1 + r 1 CutRevenue Pick the largest

8
General Procedure to Find Optimal Rod Cutting

10
Recursive Top-Down Cut-Rod(p,n) 1.if n == 0 2.return 0 3.q = -∞ 4.for i = 1 to n 5.q = max(q,p[i] + Cut-Rod(p, n - i ) ) 6.return q

11
vs Divide-and-conquer Similarity to divide problems into subproblems Difference subproblems overlap

12
Can we do better ?

13
Momoized-Cut-Rod Memoized-Cut-Rod(p,n) 1.let r[0..n] be a new array 2.for i = 0 to n 3.r[i] = -∞ 4.return Memoized-Cut-Rod-Aux(p,n,r)

14
Momoized-Cut-Rod-Aux Momoized-Cut-Rod-Aux(p,n,r) 1.if r[n] >= 0 2.return r[n] 3.if n == 0 4.q = 0 5.else q = -∞ 6.for i = 1 to n 7.q = max(q,p[i]+Memoized-Cut-Rod-Aux(p,n-i,r)) 8.r[n] = q 9.return q

15
Bottom-Up-Cut-Rod Bottom-Up-Cut-Rod(p,n) 1.let r[0..n] be a new array 2.r[0] = 0 3.for j = 1 to n 4.q = -∞ 5.for i = 1 to j 6.q = max(q, p[i] + r[j-i]) 7.r[j] = q 8.return r[n]

16
Running Time

17
Extended-Bottom-Up-Cut- Rod Extended-Bottom-Up-Cut-Rod(p,n) 1.let r[0..n] and s[0..n] be new arrays 2.r[0] = 0 3.for j = 1 to n 4.q = -∞ 5.for i = 1 to j 6.if q < p[i] + r[j-i] 7.q = p[i] + r[j-i] 8.s[j] = i 9.r[j] = q 10.return r and s

Similar presentations

OK

Dynamic Programming (Ch. 15) Not a specific algorithm, but a technique (like divide- and-conquer). Developed back in the day when “programming” meant “tabular.

Dynamic Programming (Ch. 15) Not a specific algorithm, but a technique (like divide- and-conquer). Developed back in the day when “programming” meant “tabular.

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google

Ppt on jpeg image compression Ppt on area of trapezoid Ppt on human chromosomes have hundreds Ppt on limits and continuity review Ppt on content development training Ppt on area of parallelogram Free ppt on personality development Ppt on save our planet earth Ppt on hindi grammar for class 9 Download ppt on turbo generators