5. Dynamic programming

Course week(s) Week 5
Course subject(s) 05. Dynamic programming

Module 5. Dynamic programming

Dynamic programming is a technique related to divide and conquer for situations where there may be overlapping subproblems in the recursion. The idea here is to reuse the answers to such sub-problems. This algorithm design concept is illustrated by weighted interval scheduling, segmented least squares, knapsack, RNA secondary structure, sequence alignment, and the shortest path problem.

Recorded lectures:

Slides:
Slides with thanks to Kevin Wayne and Pearson Education (made available together with the book “Algorithm Design” by Kleinberg & Tardos)

Relevant exercises:
Algorithm Design: 6.1 – 6.8, 6.20, 6.22 – 6.23

Creative Commons License
Algoritmiek by TU Delft OpenCourseWare is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Based on a work at https://ocw.tudelft.nl/courses/algoritmiek/.
Back to top