This preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentThis preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
Unformatted text preview: 6.006 Introduction to Algorithms Lecture 20: Dynamic Programming III Prof. Erik Demaine Today • Dynamic programming review • Guessing – Within a subproblem – Using additional subproblems • Parenthesization • Knapsack • Tetris training Dynamic Programming History ‘Bellman … explained that he invented the name “dynamic programming” to hide the fact that he was doing mathematical research at RAND under a Secretary of Defense who “had a pathological fear and hatred of the term, research.” He settled on “dynamic programming” because it would be difficult give it a “pejorative meaning” and because “It was something not even a Congressman could object to.” ’ [John Rust 2006] http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.87.2819&rep=rep1&type=pdf Richard E. Bellman (1920–1984) IEEE Medal of Honor, 1979 http://www.amazon.com/Bellman‐Continuum‐ Collection‐Works‐Richard/dp/9971500906 What is Dynamic Programming? • “Controlled” brute force / exhaustive search • Key ideas: – Subproblems: like original problem, but smaller • Write solution to one subproblem in terms of solutions to smaller subproblems – Memoization: remember the solution to subproblems we’ve already solved, and re‐use • Avoid exponentials – Guessing: if you don’t know something, guess it!...
View
Full Document
 Spring '11
 byrns
 Math, Dynamic Programming, Addition, subproblems, Original Problem, DP time

Click to edit the document details