main page  —  CS 566 Efficient Algorithms

Unit 12: Dynamic Programming

This is an archived version of this module from Winter 2024-25.

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

  1. 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


Unit 11  ⋅  Syllabus  ⋅  Unit 13