Download presentation

Presentation is loading. Please wait.

Published byJordan Kilgore Modified over 4 years ago

1
Introduction to Algorithms 6.046J/18.401J/SMA5503 Lecture 2 Prof. Erik Demaine

2
Solving recurrences The analysis of merge sort from Lecture 1 required us to solve a recurrence. Recurrences are like solving integrals, differential equations, etc. o Learn a few tricks. Lecture 3: Applications of recurrences.

3
Substitution method The most general method: 1. Guess the form of the solution. 2. Verify by induction. 3. Solve for constants. Example: T(n) = 4T(n/2) + n [Assume that T(1) = Θ(1).] Guess O( n 3). (Prove O and separately.) Assume that T(k) ck 3 for k < n. Prove T(n) cn 3 by induction.

4
Example of substitution T(n) = 4T (n/2) + n 4c (n/2) 3 + n = (c/2) n 3 + n = cn 3 – ((c/2) n 3 –n) desired – residual cn 3 desired whenever (c/2) n 3 – n 0, for example, if c 2 and n 1. residual

5
Example (continued) We must also handle the initial conditions, that is, ground the induction with base cases. Base: T(n) = Θ(1) for all n < n 0, where n 0 is a suitable constant. For 1 n < n 0, we have Θ(1) cn 3, if we pick c big enough. ============================ This bound is not tight!

6
A tighter upper bound? We shall prove that T(n) = O(n2). Assume that T(k) ck2 for k < n:: T(n) = 4T(n/2) + n 4 cn 2 + n = cn2 – (- n) [desired – residual] cn 2 for no choice of c > 0. Lose!

7
A tighter upper bound! IDEA: Strengthen the inductive hypothesis. Subtract a low-order term. Inductive hypothesis: T(k) c1k2 – c2k for k < n. T(n) = 4T(n/2) + n 4(c 1 (n/2) 2 –c2(n/2) + n = c 1 n 2 –2 c 2 n – (c2n – n) c1 n 2 –c2n if c2 < 1 Pick c1 big enough to handle the initial conditions.

8
Recursion-tree method A recursion tree models the costs (time) of a recursive execution of an algorithm. The recursion tree method is good for generating guesses for the substitution method. The recursion-tree method can be unreliable, just like any method that uses ellipses ( … ). The recursion-tree method promotes intuition, however.

9
Example of recursion tree Solve T(n) = T(n/4) + T(n/2) + n 2:

10
Example of recursion tree Solve T(n) = T(n/4) + T(n/2) + n 2: T(n)

11
Example of recursion tree Solve T(n) = T(n/4) + T(n/2) + n2: N2 T(n/4) T(n/2)

12
Example of recursion tree Solve T(n) = T(n/4) + T(n/2) + n2: n 2 (n/4) 2 (n/2) 2 T(n/16) T(n/8) T(n/8) T(n/4)

13
Example of recursion tree Solve T(n) = T(n/4) + T(n/2) + n2: N2 (n/4) 2 (n/2) 2 (n/16) 2 (n/8) 2 (n/8) 2 (n/4) 2 Θ(1)

14
Example of recursion tree Solve T(n) = T(n/4) + T(n/2) + n2: n 2 n 2 (n/4)2 (n/2)2 (n/16)2 (n/8)2 (n/8)2 (n/4)2 Θ(1)

15
Example of recursion tree Solve T(n) = T(n/4) + T(n/2) + n2: n 2 (n/4)2 (n/2)2 5/16*n2 (n/16)2 (n/8)2 (n/8)2 (n/4)2 Θ(1)

16
Example of recursion tree Solve T(n) = T(n/4) + T(n/2) + n2: n 2 (n/4)2 (n/2)2 5/16*n2 (n/16)2 (n/8)2 (n/8)2 (n/4)2 25/256*n2 Θ(1)

17
Example of recursion tree Solve T(n) = T(n/4) + T(n/2) + n2: n 2 (n/4)2 (n/2)2 5/16*n2 (n/16)2 (n/8)2 (n/8)2 (n/4)2 25/256*n2 Θ(1) Total = n 2(1+5/16+ (5/16) 2+ (5/16) 3+…) =Θ( n 2)geometric series

18
The master method The master method applies to recurrences of the form T(n) = aT(n/b) + f (n), where a 1, b > 1, and f is asymptotically positive.

19
Three common cases Compare f (n) with n logba: 1. f (n) =O( n logba – ε)for some constantε> 0. f (n) grows polynomially slower than n logba (by an n ε factor). Solution: T(n) = Θ( n logba). 2.f (n)=Θ( n logba l g kn) for some constant k 0. f (n) and n logba grow at similar rates. Solution: T(n) = Θ( n logba l g k+1n).

20
Three common cases (cont.) Compare f (n) with nlogba: 3.f (n) = ( n logba +ε) for some constantε> 0. f (n) grows polynomially faster than nlogba (by an nε factor), and f (n) satisfies the regularity condition that a f (n/b) c f (n) for some constant c < 1. Solution: T(n) = Θ( f (n)).

21
Examples Ex. T(n) = 4T(n/2) + n a = 4, b = 2 n logba = n 2; f (n) = n. CASE 1: f (n) = O( n 2 – ε) for ε = 1. T(n) = Θ( n 2). Ex. T(n) = 4T(n/2) + n 2 a = 4, b = 2 n logba = n 2; f (n) = n 2. CASE 2: f (n) = Θ( n 2 lg 0 n ), that is, k = 0. T(n) = Θ( n 2 lgn ).

22
Examples Ex. T(n) = 4T(n/2) + n 3 a = 4, b = 2 n logba = n 2; f (n) = n 3. CASE 3: f (n) = ( n 2 + ε) for ε = 1 and 4 (cn/2) 3 cn 3 (reg. cond.) for c = 1/2. T(n) = Θ( n 3). Ex. T(n) = 4T(n/2) + n 2/lgn a = 4, b = 2 n logba = n 2; f (n) = n 2/lgn. Master method does not apply. In particular, for every constant ε > 0, we have n ε= ω(lgn).

23
General method (Akra-Bazzi) Let p be the unique solution to Then, the answers are the same as for the master method, but with n p instead of n logba. (Akra and Bazzi also prove an even more general result.)

24
Idea of master theorem

28
Conclusion Next time: applying the master method. For proof of master theorem, see CLRS.

29
Appendix: geometric series

Similar presentations

OK

Divide and Conquer. Recall Divide the problem into a number of sub-problems that are smaller instances of the same problem. Conquer the sub-problems by.

Divide and Conquer. Recall Divide the problem into a number of sub-problems that are smaller instances of the same problem. Conquer the sub-problems by.

© 2018 SlidePlayer.com Inc.

All rights reserved.

To make this website work, we log user data and share it with processors. To use this website, you must agree to our Privacy Policy, including cookie policy.

Ads by Google