Loading in 5 sec....

CSCI 6212 Design and Analysis of Algorithms Dynamic ProgrammingPowerPoint Presentation

CSCI 6212 Design and Analysis of Algorithms Dynamic Programming

- 217 Views
- Uploaded on

Download Presentation
## PowerPoint Slideshow about 'CSCI 6212 Design and Analysis of Algorithms Dynamic Programming' - denali

**An Image/Link below is provided (as is) to download presentation**

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

CSCI 6212 Design and Analysis of AlgorithmsDynamic 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)

Example: Rod Cutting

r1 + rn-1

Uncut Rod of length n

pn

General Procedure to Find Optimal Rod CuttingCut

Revenue

Pick the largest

r2 + rn-2

rn-2 + r2

rn-1 + r1

Recursive Top-Down

- Cut-Rod(p,n)
- if n == 0
- return 0
- q = ∞
- for i = 1 to n
- q = max(q,p[i] + Cut-Rod(p, n - i ) )
- return q

vs Divide-and-conquer

- Similarity
- to divides problems into subproblems
- Difference
- subproblems overlap

Momoized-Cut-Rod

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

Momoized-Cut-Rod-Aux

- Momoized-Cut-Rod-Aux(p,n)
- if r[n] >= 0
- return r[n]
- if n == 0
- q = 1
- else q = -∞
- for i = 1 to n
- q = max(q,p[i]+Memoized-Cut-Rod-Aux(pn,n-i,r))
- r[n] = q
- return q

Bottom-Cut-Rod

- Bottom-Up-Cut-Rod(p,n)
- let r[0..n] be a new array
- r[0] = 0
- for j = 1 to n
- q = -∞
- for i = 1 to j
- q = max(q, p[i] + r[j-i])
- r[j] = q
- return r[n]

Download Presentation

Connecting to Server..