Tangled Dependencies and Memoization
Many of you may know the year 1957 as the birth year of programming languages.1 For algorists, a possibly even more significant event took place this year: Richard Bellman published his groundbreaking book Dynamic Programming. Although Bellman’s book is mostly mathematical in nature, not really aimed at programmers at all (perhaps understandable, given the timing), the core ideas behind his techniques have laid the foundation for a host of very powerful algorithms, and they form a solid design method that any algorithm designer needs to master.
KeywordsKnapsack Problem Edit Distance Iterative Version Recursive Call Binary Search Tree
Unable to display preview. Download preview PDF.
- Bather, J. (2000). Decision Theory: An Introduction to Dynamic Programming and Sequential Decisions. John Wiley & Sons, Ltd.Google Scholar
- Bellman, R. (2003). Dynamic Programming. Dover Publications, Inc.Google Scholar
- Denardo, E. V. (2003). Dynamic Programming: Models and Applications. Dover Publications, Inc.Google Scholar
- Gusfield, D. (1997). Algorithms on Strings, Trees and Sequences: Computer Science and Computational Biology. Cambridge University Press.Google Scholar
- Lew, A. and Mauch, H. (2007). Dynamic Programming: A Computational Tool. Springer.Google Scholar
- Smyth, B. (2003). Computing Patterns in Strings. Addison-Wesley.Google Scholar