Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lecture 5 Dynamic Programming

Similar presentations


Presentation on theme: "Lecture 5 Dynamic Programming"— Presentation transcript:

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


Download ppt "Lecture 5 Dynamic Programming"

Similar presentations


Ads by Google