Presentation is loading. Please wait.

Presentation is loading. Please wait.

Cutler/HeadGrowth of Functions 1 Asymptotic Growth Rate.

Similar presentations


Presentation on theme: "Cutler/HeadGrowth of Functions 1 Asymptotic Growth Rate."— Presentation transcript:

1 Cutler/HeadGrowth of Functions 1 Asymptotic Growth Rate

2 CS575 / Class 1Growth of Functions 2 Function Growth The running time of an algorithm as input size approaches infinity is called the asymptotic running time We study different notations for asymptotic efficiency. In particular, we study tight bounds, upper bounds and lower bounds.

3 Cutler/HeadGrowth of Functions 3 Outline Why do we need the different sets? Definition of the sets O, Omega and Theta Classifying examples: –Using the original definition –Using limits General Properties Little Oh Additional properties

4 Cutler/HeadGrowth of Functions 4 The “sets” and their use – big Oh Big “oh” - asymptotic upper bound on the growth of an algorithm When do we use Big Oh? 1.Theory of NP-completeness 2.To provide information on the maximum number of operations that an algorithm performs –Insertion sort is O(n 2 ) in the worst case This means that in the worst case it performs at most cn 2 operations –Insertion sort is also O(n 6 ) in the worst case since it also performs at most dn 6 operations

5 Cutler/HeadGrowth of Functions 5 The “sets” and their use – Omega Omega - asymptotic lower bound on the growth of an algorithm or a problem * When do we use Omega? 1. To provide information on the minimum number of operations that an algorithm performs –Insertion sort is  (n) in the best case This means that in the best case its instruction count is at least cn, –It is  (n 2 ) in the worst case This means that in the worst case its instruction count is at least cn 2

6 Cutler/HeadGrowth of Functions 6 The “sets” and their use – Omega cont. 2. To provide information on a class of algorithms that solve a problem –Sort algorithms based on comparison of keys are  (nlgn) in the worst case This means that all sort algorithms based only on comparison of keys have to do at least cnlgn operations –Any algorithm based only on comparison of keys to find the maximum of n elements is  (n) in every case This means that all algorithms based only on comparison of keys to find maximum have to do at least cn operations

7 Cutler/HeadGrowth of Functions 7 The “sets” and their use - Theta Theta - asymptotic tight bound on the growth rate of an algorithm –Insertion sort is  (n 2 ) in the worst and average cases The means that in the worst case and average cases insertion sort performs cn 2 operations –Binary search is  (lg n) in the worst and average cases The means that in the worst case and average cases binary search performs clgn operations Note: We want to classify an algorithm using Theta. –In Data Structures used Oh Little “oh” - used to denote an upper bound that is not asymptotically tight. n is in o(n 3 ). n is not in o(n)

8 CS575 / Class 1Growth of Functions 8 The functions Let f(n) and g(n) be asymptotically nonnegative functions whose domains are the set of natural numbers N={0,1,2,…}. A function g(n) is asymptotically nonnegative, if g(n)  0 for all n  n 0 where n 0  N

9 Cutler/HeadGrowth of Functions 9 Asymptotic Upper Bound: big O f (n) c  g (n) f (n) = O ( g ( n ) ) N Why only for n  N ? What is the purpose of multiplying by c > 0? Graph shows that for all n  N, f(n)  c*g(n)

10 Cutler/HeadGrowth of Functions 10 Asymptotic Upper Bound: O Definition: Let f (n) and g(n) be asymptotically non-negative functions. We say f (n) is in O ( g ( n ) ) if there is a real positive constant c and a positive Integer N such that for every n  N 0  f (n)  c  g (n ). Or using more mathematical notation O ( g (n) ) = { f (n )| there exist positive constant c and a positive integer N such that 0  f( n)  c  g (n ) for all n  N }

11 Cutler/HeadGrowth of Functions 11 n 2 + 10 n   O (n 2 ) Why? 0 200 400 600 800 1000 1200 1400 0102030 n 2 + 10n 2 n 2 take c = 2 N = 10 2n 2 > n 2 + 10 n for all n>=10

12 Cutler/HeadGrowth of Functions 12 Does 5n+2  O(n)? Proof: From the definition of Big Oh, there must exist c>0 and integer N>0 such that 0  5n+2  cn for all n  N. Dividing both sides of the inequality by n>0 we get: 0  5+2/n  c. 2/n  2, 2/n>0 becomes smaller when n increases There are many choices here for c and N. If we choose N=1 then c  5+2/1= 7. If we choose c=6, then 0  5+2/n  6. So N  2. In either case (we only need one!) we have a c>o and N>0 such that 0  5n+2  cn for all n  N. So the definition is satisfied and 5n+2  O(n)

13 Cutler/HeadGrowth of Functions 13 Does n 2  O(n)? No. We will prove by contradiction that the definition cannot be satisfied. Assume that n 2  O(n). From the definition of Big Oh, there must exist c>0 and integer N>0 such that 0  n 2  cn for all n  N. Dividing the inequality by n>0 we get 0  n  c for all n  N. n  c cannot be true for any n >max{c,N }, contradicting our assumption So there is no constant c>0 such that n  c is satisfied for all n  N, and n 2  O(n)

14 Cutler/HeadGrowth of Functions 14 O ( g (n) ) = { f (n )| there exist positive constant c and positive integer N such that 0  f( n)  c  g (n ) for all n  N } 1,000,000 n 2  O(n 2 ) why/why not? (n - 1)n / 2  O(n 2 ) why /why not? n / 2  O(n 2 ) why /why not? lg (n 2 )  O( lg n ) why /why not? n 2  O(n) why /why not?

15 Cutler/HeadGrowth of Functions 15 Asymptotic Lower Bound, Omega:  f (n) c * g (n) f(n) =  ( g ( n ) ) N

16 Cutler/HeadGrowth of Functions 16 Asymptotic Lower Bound:  Definition: Let f (n) and g(n) be asymptotically non-negative functions. We say f (n) is  ( g ( n ) ) if there is a positive real constant c and a positive integer N such that for every n  N 0  c * g (n )  f ( n). Or using more mathematical notation  ( g ( n ) ) = { f (n) | there exist positive constant c and a positive integer N such that 0  c * g (n )  f ( n) for all n  N }

17 Cutler/HeadGrowth of Functions 17 Is 5n-20   (n)? Proof: From the definition of Omega, there must exist c>0 and integer N>0 such that 0  cn  5n-20 for all n  N Dividing the inequality by n>0 we get: 0  c  5-20/n for all n  N. 20/n  20, and 20/n becomes smaller as n grows. There are many choices here for c and N. Since c > 0, 5 – 20/n >0 and N >4 For example, if we choose c=4, then 5 – 20/n  4 and N  20 In this case we have a c>o and N>0 such that 0  cn  5n-20 for all n  N. So the definition is satisfied and 5n-20  (n)

18 Cutler/HeadGrowth of Functions 18  ( g ( n ) ) = { f (n) | there exist positive constant c and a positive integer N such that 0  c * g (n )  f ( n) for all n  N } 1,000,000 n 2  (n 2 ) why /why not? (n - 1)n / 2  (n 2 ) why /why not? n / 2  (n 2 ) why /why not? lg (n 2 )  ( lg n ) why /why not? n 2  (n) why /why not?

19 Cutler/HeadGrowth of Functions 19 Asymptotic Tight Bound:  f (n) d  g (n) f (n) =  ( g ( n ) ) N c  g (n)

20 Cutler/HeadGrowth of Functions 20 Asymptotic Bound Theta:  Definition: Let f (n) and g(n) be asymptotically non-negative functions. We say f (n) is  ( g ( n ) ) if there are positive constants c, d and a positive integer N such that for every n  N 0  c  g (n )  f ( n)  d  g ( n ). Or using more mathematical notation  ( g ( n ) ) = { f (n) | there exist positive constants c, d and a positive integer N such that 0  c  g (n )  f ( n)  d  g ( n ). for all n  N }

21 Cutler/HeadGrowth of Functions 21 More on  We will use this definition:  (g (n)) = O( g (n) )  ( g (n) )

22 Cutler/HeadGrowth of Functions 22 We show: 1. 2.

23 Cutler/HeadGrowth of Functions 23

24 Cutler/HeadGrowth of Functions 24

25 Cutler/HeadGrowth of Functions 25 More  1,000,000 n 2  (n 2 ) why /why not? (n - 1)n / 2  (n 2 ) why /why not? n / 2  (n 2 ) why /why not? lg (n 2 )    ( lg n ) why /why not? n 2  (n) why /why not?

26 Cutler/HeadGrowth of Functions 26 Limits can be used to determine Order c then f (n) =  ( g (n)) if c > 0 if lim f (n) / g (n) = 0 or c > 0 then f (n) =  ( g(n))  or c > 0  then f (n) =  ( g (n)) The limit must exist { n 

27 Cutler/HeadGrowth of Functions 27 Example using limits

28 Cutler/HeadGrowth of Functions 28 L’Hopital’s Rule If f(x) and g(x) are both differentiable with derivatives f’(x) and g’(x), respectively, and if

29 Cutler/HeadGrowth of Functions 29 Example using limits

30 Cutler/HeadGrowth of Functions 30 Example using limits lg () ln lg)' ln lim lg lim (lg)' ' lim ln n On n n n n n n n nn nnn           22 1 2 0 ('= 1 nln2

31 Cutler/HeadGrowth of Functions 31 Example using limits nO e ee nkn kknk k nn nnnn n k n n k n n k n n nk             )'(ln lim ln lim () ln...lim ! ln n ()2 2 222 222 1 2222 0 2 22 1 2 2 where k is a positive integer. ()'=ln2

32 Cutler/HeadGrowth of Functions 32 Another upper bound “little oh”: o Definition: Let f (n) and g(n) be asymptotically non-negative functions.. We say f ( n ) is o ( g ( n ) ) if for every positive real constant c there exists a positive integer N such that for all n  N 0  f(n)  c  g (n ). o ( g (n) ) = {f(n) : for any positive constant c >0, there exists a positive integer N > 0 such that 0  f( n)  c  g (n ) for all n  N } “little omega” can also be defined

33 Cutler/HeadGrowth of Functions 33 main difference between O and o O ( g (n) ) = { f (n )| there exist positive constant c and a positive integer N such that 0  f( n)  c  g (n ) for all n  N } o ( g (n) ) = { f(n) | for any positive constant c >0, there exists a positive integer N such that 0  f( n)  c  g (n ) for all n  N } For ‘o’ the inequality holds for all positive constants. Whereas for ‘O’ the inequality holds for some positive constants.

34 Cutler/HeadGrowth of Functions 34 Lower-order terms and constants Lower order terms of a function do not matter since lower- order terms are dominated by the higher order term. Constants (multiplied by highest order term) do not matter, since they do not affect the asymptotic growth rate All logarithms with base b >1 belong to  (lg n) since

35 Cutler/HeadGrowth of Functions 35 Asymptotic notation in equations What does n 2 + 2n + 99 = n 2 +  (n) mean? n 2 + 2n + 99 = n 2 + f(n) Where the function f(n) is from the set  (n). In fact f(n) = 2n + 99. Using notation in this manner can help to eliminate non- affecting details and clutter in an equation. ? 2n 2 + 5n + 21= 2n 2 +  (n ) =  (n 2 )

36 Cutler/HeadGrowth of Functions 36 Transitivity: If f (n) =  (g(n )) and g (n) =  (h(n )) then f (n) =  (h(n )). If f (n) =  (g(n )) and g (n) =  (h(n )) then f (n) =  (h(n )). If f (n) =  (g(n )) and g (n) =  (h(n )) then f (n) =  (h(n )). If f (n) =  (g(n )) and g (n) =  (h(n )) then f (n) =  (h(n )). If f (n) =  (g(n )) and g (n) =  (h(n )) then f (n) =  (h(n ))

37 Cutler/HeadGrowth of Functions 37 Reflexivity: f (n) =  (f (n )). f (n) =  (f (n )). f (n) =  (f (n )). “o” is not reflexive

38 Cutler/HeadGrowth of Functions 38 Symmetry and Transpose symmetry: Symmetry: f (n) =  ( g(n )) if and only if g (n) =  (f (n )). Transpose symmetry: f (n) =  (g(n )) if and only if g (n) =  (f (n )). f (n) =  (g(n )) if and only if g (n) =  (f (n )).

39 Cutler/HeadGrowth of Functions 39 Analogy between asymptotic comparison of functions and comparison of real numbers. f (n) =  ( g(n))  a  b f (n) =  ( g(n))  a  b f (n) =  ( g(n))  a  b f (n) =  ( g(n))  a  b f (n) =  ( g(n))  a  b

40 Cutler/HeadGrowth of Functions 40 Not All Functions are Comparable The following functions are not asymptotically comparable:

41 Cutler/HeadGrowth of Functions 41

42 Cutler/HeadGrowth of Functions 42 Is O(g(n)) =  (g(n))  o(g(n))? We show a counter example: The functions are: g(n) = n and f(n)  O(n) but f(n)   (n) and f(n)  o(n) Conclusion: O(g(n))   (g(n))  o(g(n))

43 Cutler/HeadGrowth of Functions 43 General Rules We say a function f (n ) is polynomially bounded if f (n ) = O ( n k ) for some positive constant k We say a function f (n ) is polylogarithmic bounded if f (n ) = O ( lg k n) for some positive constant k Exponential functions –grow faster than positive polynomial functions –grow faster than polylogarithmic functions


Download ppt "Cutler/HeadGrowth of Functions 1 Asymptotic Growth Rate."

Similar presentations


Ads by Google