[go: up one dir, main page]

0% found this document useful (0 votes)
33 views53 pages

Lecture 2

Uploaded by

None
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views53 pages

Lecture 2

Uploaded by

None
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 53

Analysis of Algorithms

Recurrences

(Appendix A, Chapter 4)
Recurrences and Running Time
• An equation or inequality that describes a function in
terms of its value on smaller inputs.
T(n) = T(n-1) + n
no 1
f
so_
• Recurrences arise when an algorithm contains recursive
calls to itself

• What is the actual running time of the algorithm?


• Need to solve the recurrence
– Find an explicit formula of the expression
– Bound the recurrence by an expression that involves n

2
Example Recurrences
• T(n) = T(n-1) + n Θ(n2)
– Recursive algorithm that loops through the input to
eliminate one item
• T(n) = T(n/2) + c Θ(lgn)
o
– Recursive algorithm that halves the input in one step
• T(n) = T(n/2) + n Θ(n)
0
– Recursive algorithm that halves the input but must
examine every item in the input
• T(n) = 2T(n/2) + 1
0
Θ(n)
– Recursive algorithm that splits the input into 2 halves
and does a constant amount of other work
3
Recurrent Algorithms
BINARY-SEARCH
• for an ordered array A, finds if x is in the array A[lo…hi]

Alg.: BINARY-SEARCH (A, lo, hi, x)


1 2 3 4 5 6 7 8

if (lo > hi) 2 3 5 7 9 10 11 12


return FALSE
mid  (lo+hi)/2 mid
lo hi
if x = A[mid]
return TRUE
if ( x < A[mid] )
BINARY-SEARCH (A, lo, mid-1, x)
if ( x > A[mid] )
BINARY-SEARCH (A, mid+1, hi, x)
4
Example
• A[8] = {1, 2, 3, 4, 5, 7, 9, 11}
– lo = 1 hi = 8 x = 7
1 2 3 4 5 6 7 8

1 2 3 4 5 7 9 11 mid = 4, lo = 5, hi = 8

5 6 7 8

1 2 3 4 5 7 9 11 mid = 6, A[mid] = x
Found!

5
Another Example
• A[8] = {1, 2, 3, 4, 5, 7, 9, 11}
– lo = 1 hi = 8 x=6
1 2 3 4 5 6 7 8

1 2 3 4 5 7 9 11 mid = 4, lo = 5, hi = 8
low high

1 2 3 4 5 7 9 11 mid = 6, A[6] = 7, lo = 5, hi = 5
low high
1 2 3 4 5 7 9 11 mid = 5, A[5] = 5, lo = 6, hi = 5
NOT FOUND!

1 2 3 4 5 7 9 11
high low

6
Analysis of BINARY-SEARCH
Alg.: BINARY-SEARCH (A, lo, hi, x)
if (lo > hi) constant time: c1
return FALSE
mid  (lo+hi)/2 constant time: c2
if x = A[mid] constant time: c3
return TRUE
if ( x < A[mid] )
BINARY-SEARCH (A, lo, mid-1, x) same problem of size n/2
if ( x > A[mid] )
BINARY-SEARCH (A, mid+1, hi, x) same problem of size n/2

• T(n) = c + T(n/2)
– T(n) – running time for an array of size n
7
Methods for Solving Recurrences

• Iteration method

• Substitution method

• Recursion tree method

• Master method

8
The Iteration Method
• Convert the recurrence into a summation and try
to bound it using known series
– Iterate the recurrence until the initial condition is
reached.
– Use back-substitution to express the recurrence in
terms of n and the initial (boundary) condition.

9
The Iteration Method
T(n) = c + T(n/2)
T(n) = c + T(n/2) T(n/2) = c + T(n/4)
= c + c + T(n/4) T(n/4) = c + T(n/8)
= c + c + c + T(n/8)
Assume n = 2k
T(n) = c + c + … + c + T(1)
k times
= clgn + T(1)
= Θ(lgn)

10
iteration method
solve this Rec using

TCU 2 C
TIN
a 2
Ctt
T n C
TIS T

CT Ct
T I it
C T
C K T
TIM
11
1091 98 TIN.IN

109M
K

TIN Mt 27111
NEW

2T

nth a 8T

n T 11
T a Ntnt

TIN n K 2 TI
12
In 1
Tat n Ign 1

n 2 219
TIM In
K 19
0111916
111

109N
109,219
109,2
tf
41091
1094 1019011091

9
0
Iteration Method – Example
T(n) = n + 2T(n/2) Assume: n = 2k
T(n) = n + 2T(n/2) T(n/2) = n/2 + 2T(n/4)
= n + 2(n/2 + 2T(n/4))
= n + n + 4T(n/4)
= n + n + 4(n/4 + 2T(n/8))
= n + n + n + 8T(n/8)
… = in + 2iT(n/2i)
= kn + 2kT(1)

0
= nlgn + nT(1) = Θ(nlgn)

12
The substitution method

1. Guess a solution

2. Use induction to prove that the


solution works

13
Substitution method
• Guess a solution
– T(n) = O(g(n))

– Induction goal: apply the definition of the asymptotic notation

• T(n) ≤ d g(n), for some d > 0 and n ≥ n0

– Induction hypothesis: T(k) ≤ d g(k) for all k < n (strong induction)

• Prove the induction goal


– Use the induction hypothesis to find some values of the
constants d and n0 for which the induction goal holds

14
Example: Binary Search
T(n) = c + T(n/2)
• Guess: T(n) = O(lgn)
– Induction goal: T(n) ≤ d lgn, for some d and n ≥ n0
– Induction hypothesis: T(n/2) ≤ d lg(n/2)

• Proof of induction goal:


T(n) = T(n/2) + c ≤ d lg(n/2) + c
= d lgn – d + c ≤ d lgn
if: – d + c ≤ 0, d ≥ c
• Base case? 15
this Rec using sub Method
Solve

11st dec
T n 0 Ign
Guess
10 d 190
inductorgoal
induct bypo TM 2 TITLE

d 19

Ctd ign 192 16


ign 1
Ctd
cadign d

digate d
iff c do
d Ign
c d o

c d

sdethsRec.nsy
s h d

T n T II
Example 2
T(n) = T(n-1) + n
• Guess: T(n) = O(n2)
– Induction goal: T(n) ≤ c n2, for some c and n ≥ n0
– Induction hypothesis: T(n-1) ≤ c(n-1)2 for all k < n

• Proof of induction goal:


T(n) = T(n-1) + n ≤ c (n-1)2 + n
= cn2 – (2cn – c - n) ≤ cn2
if: 2cn – c – n ≥ 0  c ≥ n/(2n-1)  c ≥ 1/(2 – 1/n)
– For n ≥ 1  2 – 1/n ≥ 1  any c ≥ 1 will work

17
Example 3
T(n) = 2T(n/2) + n
• Guess: T(n) = O(nlgn)
– Induction goal: T(n) ≤ cn lgn, for some c and n ≥ n0
– Induction hypothesis: T(n/2) ≤ cn/2 lg(n/2)

• Proof of induction goal:


T(n) = 2T(n/2) + n ≤ 2c (n/2)lg(n/2) + n
= cn lgn – cn + n ≤ cn lgn
if: - cn + n ≤ 0  c ≥ 1
• Base case? 18
Changing variables
T(n) = 2T( n ) + lgn
– Rename: m = lgn  n = 2m
T (2m) = 2T(2m/2) + m
– Rename: S(m) = T(2m)
S(m) = 2S(m/2) + m  S(m) = O(mlgm)
(demonstrated before)
T(n) = T(2m) = S(m) = O(mlgm)=O(lgnlglgn)
Idea: transform the recurrence to one that you
have seen before
19
20
The recursion-tree method

Convert the recurrence into a tree:


– Each node represents the cost incurred at various
levels of recursion

– Sum up the costs of all levels

Used to “guess” a solution for the recurrence

21
Example 1
W(n) = 2W(n/2) + n2

• Subproblem size at level i is: n/2i


• Subproblem size hits 1 when 1 = n/2i  i = lgn
• Cost of the problem at level i = (n/2i)2 No. of nodes at level i = 2i
• Total cost: lg n −1 2
n lg n −1
1
i 
1
i
1
W ( n) = 2
i =0
lg n
i
+ 2 W (1) = n
2 2
  2 
i =0
+nn
2
  2 
i =0
+ O(n) =n
1− 1
+ O ( n) = 2n 2
2
 W(n) = O(n2)
22
Reye
n
what 2W
Cfd
m m

5 In
If 1

ñ
5
in in in in 23
m
size at level
is

we hit when I
ng
11H
I

n 2

e_ ui
test
Eeo
ñ

i
i
ñ I
2ñ 0 n
Example 2
E.g.: T(n) = 3T(n/4) + cn2
e

• Subproblem size at level i is: n/4i


• Subproblem size hits 1 when 1 = n/4i  i = log4n
• Cost of a node at level i = c(n/4i)2
• Number of nodes at level i = 3i  last level has 3log4n = nlog43 nodes
• Total cost:
log 4 n −1 i i

( ) ( ) ( )

3 2 3 1
T ( n) =    cn +  n
 16 
log 4 3
    cn 2 +  n log 4 3 =
i = 0  16 
3
cn 2 +  n log 4 3 = O(n 2 )
i =0
1−
16
 T(n) = O(n ) 2 24
n
4m w
w

9
a n
17

It
whiffing
n

13 10
109
i
19 n 109

1
i

Total cost

n
19,1

O n
gn
Example 2 - Substitution
T(n) = 3T(n/4) + cn2
• Guess: T(n) = O(n2)
– Induction goal: T(n) ≤ dn2, for some d and n ≥ n0
– Induction hypothesis: T(n/4) ≤ d (n/4)2
• Proof of induction goal:
T(n) = 3T(n/4) + cn2
≤ 3d (n/4)2 + cn2
= (3/16) d n2 + cn2
≤ d n2 if: d ≥ (16/13)c

• Therefore: T(n) = O(n2)

25
Example 3 (simpler proof)
W(n) = W(n/3) + W(2n/3) + n

• The longest path from the root to


a leaf is:
n → (2/3)n → (2/3)2 n → … → 1

• Subproblem size hits 1 when


1 = (2/3)in  i=log3/2n

• Cost of the problem at level i = n

• Total cost:
lg n
W (n)  n + n + ... = n(log 3/ 2 n) = n = O(n lg n)
3
lg
2
 W(n) = O(nlgn) 26
Example 3
W(n) = W(n/3) + W(2n/3) + n

• The longest path from the root to


a leaf is:
n → (2/3)n → (2/3)2 n → … → 1

• Subproblem size hits 1 when


1 = (2/3)in  i=log3/2n

• Cost of the problem at level i = n

• Total cost:
(log3 / 2 n ) −1
W (n)  n + n + ... = i =0
n + 2(log3 / 2 n ) W (1) 
log3 / 2 n
lg n 1
n 
i =0
1 + nlog3 / 2 2 = n log 3/ 2 n + O(n) = n
lg 3 / 2
+ O ( n) =
lg 3 / 2
n lg n + O(n)

 W(n) = O(nlgn) 27
28
Example 3 - Substitution
W(n) = W(n/3) + W(2n/3) + O(n)
• Guess: W(n) = O(nlgn)
– Induction goal: W(n) ≤ dnlgn, for some d and n ≥ n0
– Induction hypothesis: W(k) ≤ d klgk for any K < n
(n/3, 2n/3)
• Proof of induction goal:
Try it out as an exercise!!
• T(n) = O(nlgn)

29
Master’s method
• “Cookbook” for solving recurrences of the form:
n
T (n) = aT   + f (n)
b
where, a ≥ 1, b > 1, and f(n) > 0

Idea: compare f(n) with nlogba

• f(n) is asymptotically smaller or larger than nlogba by


a polynomial factor n

• f(n) is asymptotically equal with nlogba


30
Master’s method
• “Cookbook” for solving recurrences of the form:

n
T (n) = aT   + f (n)
b
where, a ≥ 1, b > 1, and f(n) > 0

Case 1: if f(n) = O(nlogba -) for some  > 0, then: T(n) = (nlogba)

Case 2: if f(n) = (nlogba), then: T(n) = (nlogba lgn)

Case 3: if f(n) = (nlogba +) for some  > 0, and if

af(n/b) ≤ cf(n) for some c < 1 and all sufficiently large n, then:

T(n) = (f(n))
regularity condition
31
masthm
TIM AT fca

971 bsl fin 70

ftp.murtb
poly

cases n fin Ek 32
n n

n fin TM
cases
fin
n f n Tcn
cases

2T Ñ
9 2 b 2 finish

iii
fin
n n

casel
n
a

n
27

Ten 2T 4 n

2 6 2 flat n
9

n n In
1095 f a

n a

case E
IITIN
n Ign

alga

TCM
9 2 b 2 far N

fin
n ñ
case

That fin

Tm É
9 1 b 2 femenign

i
Ign
does not Apply
2 T 1 ñ
THE

Does not Apply because

a not a constant

TIME
does not Apply

TIM T logn

TCM 3T 1 3
Examples

T(n) = 2T(n/2) + n

a = 2, b = 2, log22 = 1

Compare nlog22 with f(n) = n

 f(n) = (n)  Case 2

 T(n) = (nlgn)

34
TAI 2T F
154m
1m as
T i 2T

m 2 m
51m 25 2
5 1 T

b 2 f m m
sa T 2
air
is
iii m
s
35
m f m

m m
case
SIMI G m g m

n T 2n Scm 0 m g m
T

Ignigign
Examples
T(n) = 2T(n/2) + n2
a = 2, b = 2, log22 = 1
Compare n with f(n) = n2
 f(n) = (n1+) Case 3  verify regularity cond.
a f(n/b) ≤ c f(n)
 2 n2/4 ≤ c n2  c = ½ is a solution (c<1)
 T(n) = (n2)

36
37
Examples (cont.)

T(n) = 2T(n/2) + n

a = 2, b = 2, log22 = 1

Compare n with f(n) = n1/2

 f(n) = O(n1-) Case 1

 T(n) = (n)

38
Examples

T(n) = 3T(n/4) + nlgn

a = 3, b = 4, log43 = 0.793

Compare n0.793 with f(n) = nlgn

f(n) = (nlog43+) Case 3

Check regularity condition:

3(n/4)lg(n/4) ≤ (3/4)nlgn = c f(n), c=3/4

T(n) = (nlgn)
39
40
Examples

T(n) = 2T(n/2) + nlgn

a = 2, b = 2, log22 = 1

• Compare n with f(n) = nlgn


– seems like case 3 should apply

• f(n) must be polynomially larger by a factor of n

• In this case it is only larger by a factor of lgn

41
42
Readings

43

You might also like