Algorithms & Complexity Dr. Ranette Halverson CMPS 2433 – Discrete Systems & Analysis

advertisement
Algorithms &
Complexity
Dr. Ranette Halverson
CMPS 2433 – Discrete Systems & Analysis
Chapter 1: Introduction, 1.4
1
Solving a Problem
• Existence of a Solution
• How many Solutions
• Optimal Solution
• Sample problems on page 1 of book.
2
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
3
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
4
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
5
Complexity = Speed = Efficiency
• NOT Really – but sort of
• *Complexity is the number of basic
operations required by an algorithm
• Will 2 algorithms with same complexity
take the same actual amount of time to
run??
• Why or Why Not?
* Means memorize
6
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?
7
Complexity Examples
Read x, y, z
x = y + z
Print x
Do 10 times
Read x, y, z
x = y + z
Print x
8
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
9
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.
10
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
11
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
Complexity?
O(c) or O(1) - constant
Complexity?
Depends on value of n!
NOT Constant
6 * n basic operations
O(6n)  O(n)
12
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)
13
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)
14
*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.
15
Evaluating xn
• Operations???
P = x
k = 1
While
P
k
Print
k < n
= P * x
= k + 1
P
16
Evaluating xn
P = x
k = 1
While
P
k
Print
k < n
= P * x
= k + 1
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)
17
Trace: xn  54 
P = x
k = 1
While
P
k
Print
k < n
= P * x
= k + 1
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
18
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)
19
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)
What did we omit from analysis???
20
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 + ak x k
k = k+ 1
Print S
Can you spot any
inefficiencies?
21
Polynomial Evaluation Algorithm
(p.26) P(x) = anxn + an-1xn-1 + … +a1x + a0
Given values for
n, x, a0, a1,…an
S = a0 , k = 1
while k <=n
S = S + ak x k
k = k+ 1
Print S
2
n+1
#n(2+5(k+1)+1)
2n
1
*Slide 17: xk = 5k + 1
#Total = 2n +5kn + 5n + n
5kn + 8n
22
Complexity of Poly. Evaluation
Total = (by line on previous slide)
=2 + (n + 1) + (5kn + 8n) + 2n + 1
= 5kn + 11n + 4
Worst case for k??
= 5n2 + 11 n + 4 O(n2)
Note: this is for inserting code for xk
Function call adds additional overhead.
23
Analysis of Polynomial
Compare Slides 20 and 22/23
• Same Big Oh  O(n2)
• “Different details” but same results
24
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)
25
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
26
Download