*This preview shows
pages
1–9. Sign up
to
view the full content.*

This
** preview**
has intentionally

**sections.**

*blurred***to view the full version.**

*Sign up*This
** preview**
has intentionally

**sections.**

*blurred***to view the full version.**

*Sign up*This
** preview**
has intentionally

**sections.**

*blurred***to view the full version.**

*Sign up*This
** preview**
has intentionally

**sections.**

*blurred***to view the full version.**

*Sign up*
**Unformatted text preview: **Outline 1 What is Dynamic Programming 2 Matrix Chain Product Problem 3 Generating Function Method 4 Elements of Dynamic Programming 5 0/1 Knapsack Problem 6 Longest Common Subsequence Problem 7 Summary on Using Dynamic Programming Algorithm c Xin He (University at Buffalo) CSE 431/531 Algorithm Analysis and Design 1 / 64 What is Dynamic Programming Like DaC, Dynamic Programming is another useful method for designing efcient algorithms. Why the name? Eye of the Hurricane: An Autobiography - A quote from Richard Bellman I spent the Fall quarter (of 1950) at RAND. My rst task was to nd a name for multistage decision process. An interesting question is, Where did the name, dynamic programming, come from? The 1950s were not good years for mathematical research. We had a very interesting gentleman in Washington named Wilson. He was Secretary of Defense, and he actually had a pathological fear and hatred of the word, research. ... I felt I had to do something to shield Wilson and the Air Force from the fact that I was really doing mathematics inside the RAND Corporation. .... Thus, I thought dynamic programming was a good name. It was something not even a Congressman could object. So I used it as an umbrella for my activities. c Xin He (University at Buffalo) CSE 431/531 Algorithm Analysis and Design 2 / 64 General Description of Dynamic Programming Divide the problem into smaller subproblems ( of the same type ). c Xin He (University at Buffalo) CSE 431/531 Algorithm Analysis and Design 3 / 64 General Description of Dynamic Programming Divide the problem into smaller subproblems ( of the same type ). Solve each subproblem. c Xin He (University at Buffalo) CSE 431/531 Algorithm Analysis and Design 3 / 64 General Description of Dynamic Programming Divide the problem into smaller subproblems ( of the same type ). Solve each subproblem. Combine the solutions of subproblems into the solution of the original problem. c Xin He (University at Buffalo) CSE 431/531 Algorithm Analysis and Design 3 / 64 General Description of Dynamic Programming Divide the problem into smaller subproblems ( of the same type ). Solve each subproblem. Combine the solutions of subproblems into the solution of the original problem. Looks familiar? Its identical to DaC! c Xin He (University at Buffalo) CSE 431/531 Algorithm Analysis and Design 3 / 64 General Description of Dynamic Programming Divide the problem into smaller subproblems ( of the same type ). Solve each subproblem. Combine the solutions of subproblems into the solution of the original problem. Looks familiar? Its identical to DaC! But they differ substantially in details. c Xin He (University at Buffalo) CSE 431/531 Algorithm Analysis and Design 3 / 64 General Description of Dynamic Programming Divide the problem into smaller subproblems ( of the same type )....

View
Full
Document