Download presentation
Presentation is loading. Please wait.
1
Lecture 5 Dynamic Programming
2
Quiz Sample True or false?
Every algorithm that contains a divide step and a conquer step is a divide-and-conquer algorithm. Answer: No A dynamic programming contains a divide step and a conquer step and may not be a divide-and-conquer algorithm.
3
Dynamic Programming Self-reducibility
4
Divide and Conquer Divide the problem into subproblems.
Conquer the subproblems by solving them recursively. Combine the solutions to subproblems into the solution for original problem.
5
Dynamic Programming Divide the problem into subproblems.
Conquer the subproblems by solving them recursively. Combine the solutions to subproblems into the solution for original problem.
6
Remark on Divide and Conquer
Key Point: Divide-and-Conquer is a DP-type technique.
7
Algorithms with Self-Reducibility
Dynamic Programming Divide and Conquer Greedy Local Ratio
8
Matrix-chain Multiplication
9
Fully Parenthesize
10
Scalar Multiplications
11
e.g., # of scalar multiplications
12
Step 1. Find recursive structure of
optimal solution
13
Step 2. Build recursive formula about
optimal value
14
Step 3. Computing optimal value
15
Step 3. Computing optimal value
16
Step 4. Constructing an optimal solution
17
151 15,125 11,875 10,500 9,375 7,125 5,375 7,875 4,375 2,500 3,500 15,700 2,625 750 1,000 5,000
18
Optimal solution 151 15,125 (3) 11,875 10,500 (3) (3) 9,375 7,125
5,375 (3) (3) (3) 7,875 4,375 2,500 3,500 (1) (3) (3) (5) 15,700 2,625 750 1,000 5,000 (1) (2) (3) (4) (5) Optimal solution
19
Running Time
20
Running Time How many recursive calls?
How many m[I,j] will be computed?
21
# of Subproblems
22
Running Time
23
Remark on Running Time (1) Time for computing recursive formula.
(2)The number of subproblems. (3) Multiplication of (1) and (2)
24
Longest Common Subsequence
25
Problem
26
Recursive Formula
27
Related Problem
28
Recursive Formula
29
More Examples
30
A Rectangle with holes NP-Hard!!!
31
Guillotine cut
32
Guillotine Partition A sequence of guillotine cuts
Canonical one: every cut passes a hole.
33
Minimum length Guillotine Partition
Given a rectangle with holes, partition it into smaller rectangles without hole to minimize the total length of guillotine cuts.
34
Minimum Guillotine Partition
Dynamic programming In time O(n ): 5 Each cut has at most 2n choices. 4 There are O(n ) subproblems. Minimum guillotine partition can be a polynomial-time approximation.
35
What we learnt in this lecture?
How to design dynamic programming. Two ways to implement. How to analyze running time.
36
Quiz Sample True or False
Analysis method for dynamic programming can also be applied to divide-and-conquer algorithms. Answer: True
37
Quiz Sample True or False
Every dynamic programming can be analyzed with formula: Run-time = (table size) x (computation time of recursive formula). Answer: False A counterexample can be seen in study of the shortest path problem.
38
Puzzle
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.