Asymptotics and Recurrence Equations Analysis of Algorithms Prepared by John Reif, Ph.D. Asymptotics and Recurrence Equations a) Computational Complexity of a Program b) Worst Case and Expected Bounds c) Definition of Asymptotic Equations d) Solution of Recurrence Notation Readings • Main Reading Selection: • CLR, Chapter 3, 4 and Appendix A Goal • To estimate and compare growth rates of functions • Ignore constant factors of growth “f(n) is asymptotically equal to g(n)” f(n) ~ g(n) if f(n) lim 1 n g(n) ”f(n) is little o g(n) ” f(n) 0 n g(n) • f(n) is o(g(n)) if lim ”f(n) is big O g(n) ” f(n) • f(n) is O(g(n)) if lim sup c g(n) n Example of f(n) is O(g(n)) c,n 0 0 s.t. f(n) c g(n) for all n n 0 “f(n) is order at least g(n)” • f(n) is Ω(g(n)) if f(n) lim inf c g(n) n n 0 , c 0 s.t. f(n) c g(n) for all n n 0 Example of f(n) is (g(n)) “f(n) is order tight with g(n)” • f(n) is Θ(g(n)) if n 0 , c, c' s.t. c g(n) f(n) c' g(n) Suppose my algorithm runs in time O(n) • Don’t say: • “his runs in time O(n2) so is worse” • But prove: • “his runs in time Ω(n2) so is worse” • Must find a worst case input of length n for which his algorithm takes time > cn2 for all n > n0 Use of O Notation • N is O(n2) sometimes written n = O(n2) • But n2 is not O(n) so can’t use identities! • The two sides of the equality do not play a symmetric role Use of Asymptotic Notation • Write • As " f(n) g(n) is o(h(n))" f(n) g(n) o(h(n)) • Example n 1 1 1 O 2 n -1 n n 1 1 1 o n n 1 o(1) as n Convergent Power Sum 1 x O(1), for 0 x 1 1 x i 0 i • A polynomial is asymptotically equal to its leading term as x d ∞ i d a x θ x i i 0 d i d 1 a x o x i i 0 d i d a x ~ a x i d i 0 Sums of Powers • for n ∞ n i 1 1 i ~ n d 1 d 1 d • Or equivalently n i 1 1 d 1 d 1 i n o n d 1 d Examples n n2 i ~ 2 i 1 n 2 3 n i ~ 3 i 1 • 2nd order asymptotic expansion n i 1 1 1 d d 1 d 1 i n n o n d 1 2 d Asymptotic Expansion of f(n) as n n0 f(n) ~ c i g i (n) i 1 • If (1)g i 1 (n) o(g i (n)) for all i 1 • and k (2) f(n) ci g i (n) o(g k (n)) i 1 for all k 1 Bounding Sums by Integrals n n 1 n k 1 1 k 1 f(k) f(x) dx f (k 1) Bounding Sums by Integrals (cont’d) n n 1 n k 1 1 k 1 f(k) f(x) dx f (k 1) • So n 1 n n 1 1 k 1 1 f(x) dx - f(n 1) f(1) f(k) f(x) dx • Example if f(x) ln(x) then ln (x)dx xln(x) x Bounding Sums by Integrals (cont’d) • So n ln k (n 1) ln (n 1) - n θ(ln(n)) k 1 ln n • Since log(n) ln 2 n n θ (log n) • So log k (n 1) log (n 1) ln 2 k 1 Other Approximations Derived from Integrals (n 1) 2 (n 1) 2 k log k log (n 1) θ (n log n) 2 4 ln 2 k 1 n • Harmonic Numbers n Hn k 1 1 k 1 H n ln(n) γ O n Euler' s constant γ .577... Stirling’s Approximation for Factorial • Factorial n! = 1· 2 · 3 · · · (n-1) · n n! ~ 2 n n e n -n as n • So 1 log(n! ) n log n - n log e log (2 n) θ (1) 2 n log n - θ (n) Recurrence Equations (over integers) • Homogenous of degree d n>d x n a1 x n 1 a 2 x n 2 ... a d x n d • Given constant coefficients initial values a1, …, ad x1, x2 , …, xd Example: Fibonacci Sequence • n>2 Fn = Fn-1 + Fn-2 F0 = 0, F1 =1 Solution of Fibonacci Sequence 1 r1 (1 5 ) 1.618... “golden ratio” 2 1 r2 (1 5 ) 2 Fn c1 r1n c 2 r2n where F0 c1 c 2 0 F1 c1 r1 c 2 r2 1 Solution of Fibonacci Sequence (cont’d) • Hence n n 1 1 5 1 5 Fn 5 2 2 1 Fn ~ 5 1 5 2 n A Useful Theorem • c > 0, d > 0 n=1 c 0 • If T (n) = n d aT + cn n>1 b θ n logb a • then T (n) = θ n d log b n d θ n a > bd a = bd a<b d Proof d T (n) = cn g(n) + a log b n d • Is solution 2 a a g(n) = 1 + d + d + ... + b b a d b log b n-1 Cases a (1) a > b g(n) ~ d b is last term so log b n-1 d T(n) = θ a logb n d =θ n logb a (2) a = bd g(n) = log b n so T(n) = θ n d log b n (3) a < bd g(n) upper bound by 0(1) so T(n) = θ n d Example: Mergesort input list L of length N if N=1 then return L else do let L1 be the first elements of L of L let L2 be the last elements M1 Mergesort (L1) M2 Mergesort (L2) return Merge (M1 , M2) Time Bounds of Mergesort • Initial Value T(1) = c1 T c 2 N for N > 1T(N) T for some constants c1, c2 > 1 Time Bound (cont’d) c2 N • N > 1 T(N) 2T guess T(N) a N log N + b N N 2 a log + b c 2 N 2 2 Holds if a = c1 + c2 , Solution b = c1 T(N) c1 + c2 N log N + c1 Time Bound (cont’d) • N > 1 T(N) 2T c 2 N, T(1) = c1 • Transform Variables n = log N, N = 2n N n 1 log N log 2 log 2 • Recurrence equation: 2X +c T = T(1) = c Xn T X0 n n-1 2 0 1 n • Solve by usual methods for recurrence equations X n O n n so T N = O (N log N) Advanced Material Exact Solution of Recurrence Relations Homogenous Recurrence Relations (no constant additive term) • Solve: try x n a1 x n 1 a 2 x n 2 ... a d x n d xn rn Multiply by d r rn • Get characteristic equation: r d a1 r d -1 a 2 r d -2 ... a d 0 Case of Distinct Roots • Distinct Roots r1, r2, …, rd d x n c i rin i 1 x n ~ c i rin • Where ri is dominant root ri rj j i Other Case • Roots are not distinct r1= r2 = r3 • Then solutions not independent, so additional terms: d x n c1 r1n c 2 n r1n c3 n 2 r1n ci rin i4 Inhomogenous Recurrence Equations x n a1 x n 1 a 2 x n 2 ... a d x n d a 0 • Nonzero constant term a0 0 • Solution Method (1) Solve homogenous equation Yn a1 Yn 1 a 2 Yn 2 ... a n Yn d Solution Method 1) Solve homogenous equation Yn a1 Yn 1 a 2 Yn 2 ... a n Yn d 2) Case a i 1 , add particular solution Solution Method (cont’d) Case a i 1 , add particular solution a0 x n cn= ia i n 3) Add particular and homogeneous solutions, and solve for constants This is all we usually need!! Asymptotics and Recurrence Equations Analysis of Algorithms Prepared by John Reif, Ph.D.