n - Portland State University

CS 350 Algorithms and Complexity
Winter 2015
Lecture 3: Analyzing Non-Recursive Algorithms
Andrew P. Black
Department of Computer Science
Portland State University
Tuesday, 13 January 2015
Analysis of time efficiency
Time efficiency is analyzed by determining
the number of repetitions of the “basic
operation”
! Almost always depends on the size of the
input
!
!
“Basic operation”: the operation that
contributes most towards the running time
cost of
of the algorithm basic op
number
run time
Tuesday, 13 January 2015
T(n) ≈ cop ⨉ C(n)
of times basic op
is executed
2
Problem
Input size measure
Basic operation
Searching for key in a
list of n items
Multiplication of two
matrices
Checking primality of
a given integer n
Shortest path through
a graph
3
Tuesday, 13 January 2015
Problem
Input size measure
Basic operation
Searching for key in a
list of n items
A: Number of list’s
items, i.e. n
W: Key comparison
B: Matrix dimension, or
total number of
elements
X: Multiplication of
two numbers
C: size of n = number of
Y: Division
digits (in binary rep)
D: #vertices and/or
edges
Z: Visiting a vertex or
traversing an edge
4
Tuesday, 13 January 2015
Problem
Multiplication of two
matrices
Input size measure
Basic operation
A: Number of list’s
items, i.e. n
W: Key comparison
B: Matrix dimension, or
total number of
elements
X: Multiplication of
two numbers
C: size of n = number of
Y: Division
digits (in binary rep)
D: #vertices and/or
edges
Z: Visiting a vertex or
traversing an edge
5
Tuesday, 13 January 2015
Problem
Checking primality of
a given integer n
Input size measure
Basic operation
A: Number of list’s
items, i.e. n
W: Key comparison
B: Matrix dimension, or
total number of
elements
X: Multiplication of
two numbers
C: size of n = number of
Y: Division
digits (in binary rep)
D: #vertices and/or
edges
Z: Visiting a vertex or
traversing an edge
6
Tuesday, 13 January 2015
Problem
Input size measure
Basic operation
A: Number of list’s
items, i.e. n
W: Key comparison
B: Matrix dimension, or
total number of
elements
X: Multiplication of
two numbers
C: size of n = number of
Y: Division
digits (in binary rep)
Shortest path through
a graph
D: #vertices and/or
edges
Z: Visiting a vertex or
traversing an edge
7
Tuesday, 13 January 2015
Best-case, average-case, worst-case
!
For some algorithms, efficiency depends on the input:
!
Worst case: Cworst(n) – maximum over inputs of size n
!
Best case: Cbest(n) – minimum over inputs of size n
!
Average case: Cavg(n) – “average” over inputs of size n
"
Number of times the basic operation will be executed on
typical input
# Not the average of worst and best case
"
Expected number of basic operations treated as a random
variable under some assumption about the probability
distribution of all possible inputs
8
Tuesday, 13 January 2015
Discuss:
!
What’s the best case, and its running time?
A. constant — O(1)
B. linear — O(n)
C. quadratic — O(n2)
9
Tuesday, 13 January 2015
Discuss:
!
What’s the worst case, and its running time?
A. constant — O(1)
B. linear — O(n)
C. quadratic — O(n2)
10
Tuesday, 13 January 2015
Discuss:
!
What’s the average case, and its running time?
A. constant — O(1)
B. linear — O(n)
C. quadratic — O(n2)
11
Tuesday, 13 January 2015
General Plan for Analysis of
non-recursive algorithms
1. Decide on parameter n indicating input size
2. Identify algorithm’s basic operation
3. Determine worst, average, and best cases
for input of size n
4. Set up a sum for the number of times the
basic operation is executed
5. Simplify the sum using standard formulae
and rules (see Levitin Appendix A)
12
Tuesday, 13 January 2015
Useful Summation Formulae
Σl≤i≤u1 = 1+1+…+1 = u - l + 1
In particular, Σ1≤i≤n1 = n - 1 + 1 = n ∈ Θ(n)
Σ1≤i≤n i = 1+2+…+n = n(n+1)/2 ≈ n2/2 ∈ Θ(n2)
Σ1≤i≤n i2 = 12+22+…+n2 = n(n+1)(2n+1)/6 ≈ n3/3 ∈ Θ(n3)
Σ0≤i≤n ai = 1 + a +…+ an = (an+1 - 1)/(a - 1) for any a ≠ 1
In particular, Σ0≤i≤n 2i = 20 + 21 + … + 2n = 2n+1 - 1 ∈ Θ(2n )
Σ(ai ± bi ) = Σai ± Σbi
Σl≤i≤u ai = Σl ≤i≤m ai + Σm+1≤i≤u ai
Σc ai = c Σ ai
13
Tuesday, 13 January 2015
Where do the Summation formulae come
from?
Answer: mathematics.
! Example:
!
The Euler–Mascheroni constant 𝛾 is defined as:
= lim
n!1
n
X
1
i=1
i
ln n
!
14
Tuesday, 13 January 2015
What does Levitin’s
⇡ mean?
“becomes almost equal to as n → ∞”
! So formula 8
n
!
X
i=1
"
lim
n!1
lg i ⇡ n lg n
means
n
X
i=1
lg i
n lg n
!
=0
15
Tuesday, 13 January 2015
Example: Counting Binary Digits
How many times is the basic operation
executed?
! Why is this algorithm harder to analyze
than the earlier examples?
!
Tuesday, 13 January 2015
16
Ex 2.3, Problem 1
! Working2.3
with a partner:
Exercises
1. Compute the following sums.
a. 1 + 3 + 5 + 7 + ... + 999
b. 2 + 4 + 8 + 16 + ... + 1024
c.
!n+1
f.
!n
i=3
1
j+1
j=1 3
d.
!n+1
g.
!n
i=3
i=1
e.
i
!n
j=1 ij
h.
!n−1
i=0
P
!n−1
n
2. Find the order of growth of the following sums.
!n−1 2
!n−1
2
a. i=0 (i +1)
b. i=2 lg i2
!
n
Tuesday, 13 January 2015
c.
i−1
(i + 1)2
d.
!n−1 !i−1
(i + j)
i=0
i=1
i(i + 1)
1/i(i + 1)
17
Ex!2.3, Problem
2
!
b. 2 + 4 + 8 + 16 + ... + 1024
c.
f.
n+1
i=3
1
!n
d.
j+1
j=1 3
g.
n+1
i=3
!n
i=1
i
!n
j=1 ij
e.
!n−1
i(i + 1)
h.
!n−1
1/i(i + 1)
i=0
i=0
2. Find the order of growth of the following sums.
!n−1 2
!n−1
2
a. i=0 (i +1)
b. i=2 lg i2
c.
!n
i=1 (i
i−1
+ 1)2
d.
!n−1 !i−1
i=0
j=0 (i
+ j)
Use the Θ(g(n)) notation with the simplest function g(n) possible.
3. The sample variance of n measurements x1 , x2 , ..., xn can be compute
!n
!n
2
¯)
i=1 (xi − x
i=1 xi
where x
¯=
n−1
n
or
18
!n
!n
2
2
i=1 xi − ( i=1 xi ) /n
.
Tuesday, 13 January 2015
a.
i=0
(i2 +1)2
b.
i=2
lg i2
Ex 2.3, Problem 3
c.
!n
i=1 (i
i−1
+ 1)2
d.
!n−1 !i−1
i=0
j=0 (i
+ j)
Use the Θ(g(n)) notation with the simplest function g(n) possible.
3. The sample variance of n measurements x1 , x2 , ..., xn can be computed as
!n
!n
2
¯)
xi
i=1 (xi − x
where x
¯ = i=1
n−1
n
or
!n
!n
2
2
x
−
(
x
)
/n
i
i=1 i
i=1
.
n−1
Find and compare the number of divisions, multiplications, and additions/subtractions (additions and subtractions are usually bunched together) that are required for computing the variance according to each of
these formulas.
4. Consider the following algorithm.
Algorithm Mystery( n)
//Input: A nonnegative integer n
S←
0 2015
Tuesday,
13 January
19
Find and compare the number of divisions, multiplications, and additions/subtractions (additions and subtractions are usually bunched together) that are required for computing the variance according to each of
these formulas.
Ex 2.3, Problem 4
4. Consider the following algorithm.
Algorithm Mystery( n)
//Input: A nonnegative integer n
S←0
for i ← 1 to n do
S ←S+i∗i
return S
What does this
algorithm compute?
A. n2
Pn
B.
i=1 i
a. What does this algorithm compute?
Pn 2
C.
b. What is its basic operation?
i=1 i
P
n
c. How many times is the basic operation executed?
D.
i=1 2i
d. What is the efficiency class of this algorithm?
16
e. Suggest an improvement or a better algorithm altogether and indi20
cate its efficiency class. If you cannot do it, try to prove that, in fact, it
Tuesday, 13 cannot
January 2015
be done.
Find and compare the number of divisions, multiplications, and additions/subtractions (additions and subtractions are usually bunched together) that are required for computing the variance according to each of
these formulas.
Ex 2.3, Problem 4
4. Consider the following algorithm.
Algorithm Mystery( n)
//Input: A nonnegative integer n
S←0
for i ← 1 to n do
S ←S+i∗i
return S
What is the
basic operation?
a. What does this algorithm compute?
b. What is its basic operation?
A. multiplication
B. addition
C. assignment
c. How many times is the basic operation executed?
D. squaring
d. What is the efficiency class of this algorithm?
16
e. Suggest an improvement or a better algorithm altogether and indi21
cate its efficiency class. If you cannot do it, try to prove that, in fact, it
Tuesday, 13 cannot
January 2015
be done.
Find and compare the number of divisions, multiplications, and additions/subtractions (additions and subtractions are usually bunched together) that are required for computing the variance according to each of
these formulas.
Ex 2.3, Problem 4
How many times is the
basic operation executed?
4. Consider the following algorithm.
Algorithm Mystery( n)
//Input: A nonnegative integer n
S←0
for i ← 1 to n do
S ←S+i∗i
return S
A. once
B. n times
a. What does this algorithm compute?
C. lg n times
b. What is its basic operation?
D. none of the above
c. How many times is the basic operation executed?
d. What is the efficiency class of this algorithm?
16
e. Suggest an improvement or a better algorithm altogether and indi22
cate its efficiency class. If you cannot do it, try to prove that, in fact, it
Tuesday, 13 cannot
January 2015
be done.
Find and compare the number of divisions, multiplications, and additions/subtractions (additions and subtractions are usually bunched together) that are required for computing the variance according to each of
these formulas.
Ex 2.3, Problem 4
4. Consider the following algorithm.
Algorithm Mystery( n)
//Input: A nonnegative integer n
S←0
for i ← 1 to n do
S ←S+i∗i
return S
What is the efficiency
class of this algorithm?
[b is # of bits needed to
represent n]
A. ⇥(1)
a. What does this algorithm compute?
B.
b. What is its basic operation?
⇥(n)
C. ⇥(b)
c. How many times is the basic operation executed?
D. ⇥(2b )
d. What is the efficiency class of this algorithm?
16
e. Suggest an improvement or a better algorithm altogether and indi23
cate its efficiency class. If you cannot do it, try to prove that, in fact, it
Tuesday, 13 cannot
January 2015
be done.
Ex 2.3, Problem 4 (cont)
d. What is the efficiency class of this algorithm?
e. Suggest an improvement or a better algorithm altogether and indicate its efficiency class. If you cannot do it, try to prove that, in fact, it
cannot be done.
5. Consider the following algorithm.
Algorithm Secret(A[0..n − 1])
//Input: An array A[0..n − 1] of n real numbers
minval ← A[0]; maxval ← A[0]
for i ← 1 to n − 1 do
if A[i] < minval
minval ← A[i]
if A[i] > maxval
maxval ← A[i]
return maxval − minval
Answer questions a—e of Problem 4 about this algorithm.
Tuesday, 13 January 2015
24
What effect will this change have on the algorithm’s efficiency?
Ex 2.3, Problem 9
8. Determine the asymptotic order of growth for the total number of times all
the doors are toggled in the Locker Doors puzzle (Problem 11 in Exercises
1.1).
9. Prove the formula
n
!
i = 1 + 2 + ... + n =
n(n + 1)
2
i=1
either by mathematical induction or by following the insight of a 10-year
old schoolboy named Karl Friedrich Gauss (1777—1855) who grew up to
become one of the greatest mathematicians of all times.
17
25
Tuesday, 13 January 2015
Ex
2.3,
Problem
11
10. Consider the following version of an important algorithm that we will
study later in the book.
Algorithm GE (A[0..n − 1, 0..n])
//Input: An n-by-n + 1 matrix A[0..n − 1, 0..n] of real numbers
for i ← 0 to n − 2 do
for j ← i + 1 to n − 1 do
for k ← i to n do
A[j, k] ← A[j, k] − A[i, k] ∗ A[j, i] / A[i, i]
a.◃ Find the time efficiency class of this algorithm.
a. Find the time efficiency class of this algorithm
b.◃ What glaring inefficiency does this pseudocode contain and how can
b. beWhat
glaringtoinefficiency
does this
code contain, and how
it
eliminated
speed the algorithm
up?
can it be eliminated?
11. von Neumann’s neighborhood How many one-by-one squares are generc. Estimate
the reduction
in run
time.
ated
by the algorithm
that starts
with
a single square square and on each
of its n iterations adds new squares all round the outside. How many
one-by-one squares are generated on the nth iteration? [Gar99, p.88] (In
26
the parlance of cellular automata theory, the answer is the number of cells
in13the
von2015
Neumann neighborhood of range n.) The results for n = 0, 1,
Tuesday,
January