Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lecture 5 Dynamic Programming. Dynamic Programming Self-reducibility.

Similar presentations


Presentation on theme: "Lecture 5 Dynamic Programming. Dynamic Programming Self-reducibility."— Presentation transcript:

1 Lecture 5 Dynamic Programming

2 Dynamic Programming Self-reducibility

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

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

5 Remark on Divide and Conquer Key Point: Divide-and-Conquer is a DP-type technique.

6 Algorithms with Self-Reducibility Dynamic Programming Divide and Conquer Greedy Local Ratio

7 Matrix-chain Multiplication

8 Fully Parenthesize

9 Scalar Multiplications

10 # of scalar multiplications e.g.,

11 Step 1. Find recursive structure of optimal solution

12 Step 2. Build recursive formula about optimal value

13 Step 3. Computing optimal value

14

15 Step 4. Constructing an optimal solution

16 15 1 15,125 11,87510,500 9,3757,1255,375 7,8754,3752,5003,500 15,7002,6257501,0005,000 000000

17 15 1 15,125 11,87510,500 9,3757,1255,375 7,8754,3752,5003,500 15,7002,6257501,0005,000 000000 (3) (5) (4)(3)(2) (1) Optimal solution

18 Running Time

19 How many recursive calls? How many m[I,j] will be computed?

20 # of Subproblems

21 Running Time

22 Remark on Running Time (1) Time for computing recursive formula. (2)The number of subproblems. (3) Multiplication of (1) and (2)

23 Longest Common Subsequence

24 Problem

25 Recursive Formula

26 More Examples

27 A Rectangle with holes NP-Hard!!!

28 Guillotine cut

29 Guillotine Partition A sequence of guillotine cuts Canonical one: every cut passes a hole.

30 Minimum length Guillotine Partition Given a rectangle with holes, partition it into smaller rectangles without hole to minimize the total length of guillotine cuts.

31 Minimum Guillotine Partition Dynamic programming In time O(n ): 5 Each cut has at most 2n choices. There are O(n ) subproblems. 4 Minimum guillotine partition can be a polynomial-time approximation.

32 What we learnt in this lecture? How to design dynamic programming. Two ways to implement. How to analyze running time.

33 Puzzle


Download ppt "Lecture 5 Dynamic Programming. Dynamic Programming Self-reducibility."

Similar presentations


Ads by Google