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:
- “Weighted interval scheduling” please watch until 1:07:30
- “Segmented least squares” last slide gives information to TU Delft students
- “Knapsack problem” please watch until 45:00
- “RNA secondary sructure” please watch until 1:19:30
- “Sequence alignment” last slide gives information to TU Delft students
- “Sequence alignment in linear space” last slide gives information to TU Delft students
- “Shortest paths” please watch until 46:50
- “Distance vector protocol” please watch until 52:10
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
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/.