270 likes | 444 Views
Algorithms & Complexity. Dr. Ranette Halverson CMPS 2433 – Discrete Systems & Analysis Chapter 1: Introduction, 1.4. Solving a Problem. Existence of a Solution How many Solutions Optimal Solution Sample problems on page 1 of book. Algorithm.
E N D
Algorithms &Complexity Dr. Ranette Halverson CMPS 2433 – Discrete Systems & Analysis Chapter 1: Introduction, 1.4
Solving a Problem • Existence of a Solution • How many Solutions • Optimal Solution • Sample problems on page 1 of book.
Algorithm • Step-by-Step instructions to accomplish a task or solve a problem • Computer Program • Assembly instructions • Driving Directions • Recipe • Format & Detail level depends on user
Efficiency of Algorithms • Different algorithms for a single task may have different efficiency • Driving Directions – short route vs. long route • Searching Algorithms • Sorting Algorithms • Must be able to evaluate efficiency (speed) of computer algorithms
Comparing Algorithms • Want to choose the “best” algorithm for tasks • Generally, best = fastest • But there are other considerations • Hardware (e.g. LaTex) • Size of data set • Data Structure • Need a standard measurement
Complexity = Speed = Efficiency • NOT Really – but sort of • *Complexityis the number of basic operations required by an algorithm • Will2 algorithms with same complexity take the same actual amount of time to run?? • Why or Why Not? * Means memorize
Complexity Examples Read x, y, z x = y + z Print x How many operations? Read x, y, z x = y / z Print x Are these algorithms the same complexity? The same speed?
Complexity Examples Read x, y, z x = y + z Print x Do 10 times Read x, y, z x = y + z Print x
Complexity Examples Do 10 times Read x, y, z x = y + z Print x Do n times Read x, y, z x = y + z Print x
Big Oh Notation O(f(n)) – “Big Oh of f of n” n represents size of data set Examples • O(1) or O(c) • O(n) • O(n2) Big Oh is an upper bound.
Constant Complexity • An algorithm with the same number of operations regardless of the data set is said to have CONSTANT COMPLEXITY • O(1) or 0(c) • See previous algorithms • Most significant algorithms are NOT constant complexity
Complexity Examples Do 10 times Read x, y, z x = y + z Print x Complexity? O(c) or O(1) - constant Do n times Read x, y, z x = y + z Print x Complexity? Depends on value of n! NOT Constant 6 * n basic operations O(6n) O(n)
Algorithm Complexity • Number of operations in terms of the data set size Do 10 times Read x, y, z x = y + z Print x Constant Time Complexity – O(1) or O(c)
Algorithm Complexity Do n times Read x, y, z x = y + z Print x Time Complexity is dependent upon n 6n Operations - O(6n) O(n)
*Big Oh (yes, memorize) O(f(n)) – Big Oh of f of n A function g(n) = O(f(n)) if there exist 2 constants K and n0 such that |g(n)| <= K|f(n)| for all n >=n0 Big Oh is an upper bound.
Evaluating xn P = x k = 1 While k < n P = P * x k = k + 1 Print P • Operations???
Evaluating xn P = x k = 1 While k < n P = P * x k = k + 1 Print P • Operations 1 1 n 2(n-1) 2(n-1) 1 Total =3 + n + 2(n-1) + 2(n-1) 3 + n + 2n -2 + 2n – 2 5n – 1 = O(5n -1) O(n)
Trace: xn 54 P = x k = 1 While k < n P = P * x k = k + 1 Print P (n=4, x=5) P = 5, k = 1 P = 5*5 (25); k= 2 P = 25*5 (125); k = 3 P = 125*5 (625); k=4 Print 625
Complexity & Rate of Growth • Complexity measures growth rate of algorithm time in terms of data size • O(1) Constant • O(n) Linear • O(n2) Polynomial (any constant power) • O(5n) Exponential (any constant base) What do these functions look like when graphed? How big are real world data sets? (name some)
Polynomial Evaluation P(x) = anxn + an-1xn-1 + … +a1x + a0 Given values for x, a0, a1,…an How many ops for anxn? Operations to calculate each term in poly? n + n-1 + n-2 +…1 + 0 = (n*(n-1))/2 Additions to combine the n+1 terms = n Total Ops = (n2-n)/2 + n O(n2)
Polynomial Evaluation (p.26) P(x) = anxn + an-1xn-1 + … +a1x + a0 Given values for x, a0, a1,…an S = a0 , k = 1 while k <=1 S = S + akxk k = k+ 1 Print S Can you spot any inefficiencies?
Polynomial Evaluation (p.26)P(x) = anxn + an-1xn-1 + … +a1x + a0 Given values for x, a0, a1,…an S = a0 , k = 1 while k <=n S = S + akxk k = k+ 1 Print S 2 n + 1 n(2+5(K+1)+1) +2n + 1 2n 1
Complexity of Poly. Evaluation Total = =2 + n +1+n(2+5(K+1)+1) +2n + 1 + 2n + 1 = 4 + 3n + n (3 + 5k – 5n) = 6n + 5kn – 5n + 4 = n + 5kn + 4 What is worst case for K??? n = n + 5n2 + 4 = 5n2 + n + 4 O(n2)
Horner’s Rule (Polynomial Evaluation) P(x) = anxn + an-1xn-1 + … +a1x + a0 S = an, k = 1 While k <= n S = Sx + an-k k = k = 1 Print s 2 n + 1 n * 3 n *2 1 Total = 2 + n+1 + 3n + n2 + 1 = 6n + 4 O(n)
Summary & Homework • See table on page 31 • In general, an algorithm is considered “good” if its complexity is no more than some polynomial in n • For small n, some non-polynomial algorithms may be “acceptable” Homework: Page 33+ 1 – 10, 23 – 26 – will discuss in class 27 – 30 (detail for each step as on slides, state Total & Big Oh) – Turn in 27-30 for grading