Download Recursion and Recurrence Relations

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
CSC 3323 Notes –
Recurrence Relations
Algorithm Analysis
Recurrence Relations
• Applying a “divide and conquer” approach
to solving a problem will frequently lead to
a recursive algorithm.
• Time complexity for such an algorithm is
represented with a recurrence relation.
Algorithm comparison example
Block multiplication (BM):
if n ≤ 3 then return SM(x, y)
m = n div 2 (rounded up)
P1 = BM( X[0..m-1], Y[0..m-1])
P2 = BM( X[m..n-1], Y[m..n-1])
P3 = BM( Add( X[0..m-1], X[m..n-1]),
Add( Y[0..m-1], Y[m..n-1]))
D = Sub( Sub( P3, P1), P2)
Z[0..2m-1] = P1
Z[2m..2n-1] = P2
Z[m..2n-1] = Add( D[0..2m+1], Z[m..2n-1])
return Z
Recurrence Relations:
Block Multiplication
TBM(n) = 3 * TBM(n/2) + c * n
3 * TBM(n/2) = 3 * ( 3TBM(n/4) + c * (n/2))
32 * TBM(n/4) = 32 * ( 3TBM(n/8) + c * (n/4))
…….
3(log2(n)-1) * TBM(2) = 3(log2(n)-1) * ( 3TBM(1)+c*(2))
log2(n)-1
log2(n)
TBM(n)=3
*TBM(1) + cn∑ (3i/2i)(see formula, p. 8, 6)
= nlog2(3) * TBM(1) +cn(((3/2)log2(n)-1)/(3/2-1))
= nlog2(3) * TBM(1) + c’n((n)log2(3/2)-1)
TBM(n) ε O(nlog2(3)) for 32 bits, 322/321.59 = 4.15
for 64 bits, 642/641.59 = 5.5
Recurrence Relations:
Binary Search
TBS(n) = TBS(n/2) + c
TBS(n/2) = TBS(n/4) + c
TBS(n/4) = TBS(n/8) + c
…….
TBS(2) = TBS(1)+c
TBS(n) = TBS(1) + c*log2(n)
TBS(n) ε O(log2(n))
Recurrence Relations
• (Section 3.7.1, pp. 137ff)
• Generally, for a recurrence relation:
T(n) = a*T(n/b) + c n e
(See Theorem 3.17, p. 139)
T(n) = c’ nlogb(a) + c ne logb(n)
if a/be = 1
T(n) = c’ nlogb(a) + c (nlogb(a) – ne) otherwise
Recurrence Relations:
Fibonacci numbers
• Definition: fib(i) = fib(i-1) + fib(i-2)
T(n) = T(n-1) + T(n-2) + c
≥ 2T(n-2) + c
2 T(n-2) ≥ 2(2 T(n-4) + c)
……
2n/2-1T(2) ≥ 2n/2-1 (2T(0) + c)
n/2
T(n) ≥ 2n/2T(0)+c ∑ 2i = 2T(0)+c(2n/2 - 1)ε Ω(2n/2)
i=0
Recurrence relations
• Sample problems: pp. 141-145
• 3.4, 3.7, 3.8, 3.10, 3.12
Related documents