main page — CS 566 Efficient Algorithms
Unit 12: Dynamic Programming
This unit covers the algorithm design technique dynamic programming. Specifically, we will cover the common steps in designing dynamic programming algorithms, and we will discuss a number of examples, including
- matrix-chain multiplication,
- making change,
- the Bellman-Ford algorithm,
- optimal binary search trees,
- edit distance.
Learning outcomes
- Be able to apply the DP paradigm to solve new problems.
Material
Further reading and sources
The presentation of dynamic programming follows
and takes inspiration from