Mathematical Fundamentals and Analysis of Algorithms

Mathematical Fundamentals and Analysis of Algorithms

Mathematical Fundamentals and Analysis of Algorithms CSE 373 Data Structures Reading • All of Chapter 4 • It’s short! • You should know most of it already Math. Fund. and Anal. of Alg 2 Mathematical Background • We will review: › Powers and Logs ›Series • We will formally define the Big Oh notation › Important functions for algorithm analysis › An example of algorithm analysis Math. Fund. and Anal. of Alg 3 Floor and Ceiling X Floor function: the largest integer < X 2.7 = 2 − 2.7 = −3 2 = 2 X Ceiling function: the smallest integer > X 2.3 = 3 − 2.3 = −2 2 = 2 Math. Fund. and Anal. of Alg 4 Facts about Floor and Ceiling 1. X −1< X ≤ X 2. X ≤ X < X +1 3. n/2 + n/2 = n if n is an integer Math. Fund. and Anal. of Alg 5 Powers of 2 • Many of the numbers we use in Computer Science are powers of 2 • Binary numbers (base 2) are easily represented in digital computers › each "bit" is a 0 or a 1 ›20=1, 21=2, 22=4, 23=8, 24=16,…, 210 =1024 (1K) › , an n-bit wide field can hold 2n positive integers: •0 ≤k ≤2n-1 Math. Fund. and Anal. of Alg 6 Unsigned binary integers • For unsigned integers in a fixed width field › the minimum value is 0 › the maximum value is 2n-1, where n is the number of bits in the field i = n −1 › The value is ∑ a 2 i i = 0 i • Each bit position represents a power of 2 with ai = 0 or ai = 1 Math. Fund. and Anal. of Alg 7 Logs and exponents y • Definition: log2 x = y means x = 2 3 ›8 = 2, so log28 = 3 16 › 65536= 2 , so log265536 = 16 • Notice that log2x tells you how many bits are needed to hold x values › 8 bits holds 256 numbers: 0 to 28-1 = 0 to 255 ›log2256 = 8 Math. Fund. and Anal. of Alg 8 x = 0:.1:4 y = 2.^x plot(x,y,'r') hold on plot(y,x,'g') plot(y,y,'b') x x, 2 and log2x x = 0:10 y = 2.^x plot(x,y,'r') hold on plot(y,x,'g') plot(y,y,'b') x 2 and log2x Properties of logs (of the mathematical kind) • We will assume logs to base 2 unless specified otherwise • log AB = log A + log B log A log B ›A=2 2 and B=2 2 log A log B log A+log B ›AB = 2 2 •2 2 = 2 2 2 ›so log2AB = log2A + log2B › [note: log AB ≠ log A•log B] Math. Fund. and Anal. of Alg 11 Other log properties • log A/B = log A – log B • log (AB) = B log A • log log X < log X < X for all X > 0 Y › log log X = Y means 22 = X › log X grows slower than X • called a “sub-linear” function › log log X grows very slowly (but it grows!) Math. Fund. and Anal. of Alg 12 A log is a log is a log • Any base x log is equivalent to base 2 log within a constant factor: log a = 2 log x a log 2 x Math. Fund. and Anal. of Alg 13 Arithmetic Series N • S(N) = 1+ 2 +K+N = ∑i i=1 • The sum is › S(1) = 1 › S(2) = 1+2 = 3 › S(3) = 1+2+3 = 6 Johann Carl Gauss 1777-1855 N N(N+1) • ∑i = Why( is this formula useful i=1 2 when you analyze algorithms? Math. Fund. and Anal. of Alg 14 Algorithm Analysis • Consider the following program segment: x:= 0; for i = 1 to N do for j = 1 to i do x := x + 1; • What is the value of x at the end? Math. Fund. and Anal. of Alg 15 Analyzing the Loop • Total number of times x is incremented is the number of “instructions” executed = N N(N+1) 1+ 2 + 3 +... = ∑i = i=1 2 • You’ve just analyzed the program! › Running time of the program is proportional to N(N+1)/2 for all N ›O(N2) (we’ll define formally the Big-Oh notation in a few slides) Math. Fund. and Anal. of Alg 16 Motivation for Algorithm Analysis • Suppose you are given two algorithms A and B for solving a T e A m i problem T n u • The running times R T (N) and T (N) of A A B T and B as a function of B input size N are given Input Size N Which is better? Math. Fund. and Anal. of Alg 17 More Motivation • For large N, the running time of A and B is: Now which e m i algorithm would T T (N) = 50N A n u you choose? R 2 TB(N) = N Input Size N Math. Fund. and Anal. of Alg 18 Asymptotic Behavior • The “asymptotic” performance as N →∞, regardless of what happens for small input sizes N, is generally most important • Performance for small input sizes may matter in practice, if you are sure that small N will be common forever • We will compare algorithms based on how they scale for large values of N Math. Fund. and Anal. of Alg 19 Order Notation • Mainly used to express upper bounds on time of algorithms. “n” is the size of the input. • T(n) = O(f(n)) if there are constants c and n0 such that T(n) < c f(n) for all n > n0. › 10000n + 10 n log2 n = O(n log n) › .00001 n2 ≠ O(n log n) • Order notation ignores constant factors and low order terms. Math. Fund. and Anal. of Alg 20 Why Order Notation • Program performance may vary by a constant factor depending on the compiler and the computer used. • In asymptotic performance (n →∞ ) the low order terms are negligible. Math. Fund. and Anal. of Alg 21 Some Basic Time Bounds • Logarithmic time is O(log n) • Linear time is O(n) • O(nlogn) grows faster than linear but slower than quadratic • Quadratic time is 0(n2) • Cubic time is O(n3) • Polynomial time is O(nk) for some k. • Exponential time is O(cn) for some c > 1. Math. Fund. and Anal. of Alg 22 Kinds of Analysis • Asymptotic – uses order notation, ignores constant factors and low order terms. • Worst case – time bound valid for all inputs of length n. • Average case – time bound valid on average – requires a distribution of inputs. • Amortized – worst case time averaged over a sequence of operations. • Others – best case, common case (80%- 20%), upper bound, lower bound etc. Math. Fund. and Anal. of Alg 23 Example of Analysis or Recursion Used Badly • Classic example: Fibonacci numbers Fn 0,1, 1, 2, 3, 5, 8, 13, 21, … ›F0 = 0 , F1 = 1 (Base Cases) › Rest are sum of preceding two Leonardo Pisano Fn = Fn-1 + Fn-2 (n > 1) Fibonacci (1170-1250) Math. Fund. and Anal. of Alg 24 Recursive Procedure for Fibonacci Numbers fib(n : integer): integer { Case { n < 0 : return 0; n = 1 : return 1; else : return fib(n-1) + fib(n-2); } } • Easy to write: looks like the definition of Fn • But, can you spot the big problem? Math. Fund. and Anal. of Alg 25 Recursive Calls of Fibonacci Procedure • Re-computes fib(N-i) multiple times! Math. Fund. and Anal. of Alg 26 Fibonacci Analysis T(n) is the time to compute fib(n). T(0),T(1) ≥ 1 T(n) ≥ T(n -1) + T(n - 2) It can be shown by induction that T(n) > φ n-2 where 1+ 5 φ = ≈ 1.62 2 So, is it linear, quadratic, polynomial time, exponential? Math. Fund. and Anal. of Alg 27 Iterative Algorithm for Fibonacci Numbers fib_iter(n : integer): integer { fib0, fib1, fibresult, i : integer; fib0 := 0; fib1 := 1; case {_ n < 0 : fibresult := 0; So is it linear, quadratic, n = 1 : fibresult := 1; polynomial time, else : for i = 2 to n do { exponential? fibresult := fib0 + fib1; fib0 := fib1; fib1 := fibresult; } } return fibresult; } Math. Fund. and Anal. of Alg 28 Recursion Summary • Recursion may simplify programming, but beware of generating large numbers of calls › Function calls can be expensive in terms of time and space • Be sure to get the base case(s) correct! • Each step must get you closer to the base case Math. Fund. and Anal. of Alg 29 Justification Techniques • By example; By contradiction; By induction • Using preconditions and postconditions › Predicate is true before statement executes (precondition) › Predicate is true after statement executes (postcondition) • Using invariants (mostly for loops) › Initial claim. Predicate true before the loop begins › If predicate true before iteration i begins, it will be true after iteration i terminates › The final statement (after loop has totally executed) implies that the invariant has held Math. Fund. and Anal. of Alg 30.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    30 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us