07 dc3

9
Divide and Conquer Analysis of Algorithms

Transcript of 07 dc3

Page 1: 07 dc3

Divide and Conquer

Analysis of Algorithms

Page 2: 07 dc3

Master Theorem

The solution to the equation T(n) = aT(n/b) + (nk), where a >= 1 and b >1 is

Ө(nlog

b a) if a > bk

T(n) = Ө(nklogn) if a = bk

Ө(nk) if a < bk

Page 3: 07 dc3

Example

Solve the following recurrence using Master Theorem

T(n) = 8T(n/2) + O(n2) a = 8, b = 2, k = 2

a > bk, 8 > 22

)()()( 38lg2 nOnOnT

Page 4: 07 dc3

Matrix Multiplicationprocedure stmul(n,A,B,C)if n>=1

partition A into A11,A12,A21,A22partition B into B11,B12,B21,B22c=AxBstmul(n/2,A11,B11,m1)stmul(n/2,A12,B21,m2)stmul(n/2,A11,B12,m3)stmul(n/2,A12,B22,m4)stmul(n/2,A21,B11,m5)stmul(n/2,A22,B21,m6)stmul(n/2,A21,B12,m7)stmul(n/2,A22,B22,m8)

Page 5: 07 dc3

c11=m1+m2, c12=m5+m6c21=m3+m4, c22=m7+m8Function Calls

m1=A11B11, m2=A12B21, m3=A11B12m4=A12B22, m5=A21B11, m6=A22B21m7=A21B12, m8=A22B22

Page 6: 07 dc3

Analysis, Multiplications

T(n)=8T(n/2)T(n/2)=8T(n/4)T(n/4)=8T(n/8)By backward substitutionT(n)=82T(n/4) =83T(n/8) =8iT(n/2i) =8 iT(n/2i)let 2i=nT(n)=8lgn

=nlg8=n^3

Page 7: 07 dc3

Additions

 t(n)=8t(n/2)+4(n/2)2

a=8, b=2, k=2by applying master theoremT(n)= n log

b a

= nlg8=n3 єӨ(n3 )

Page 8: 07 dc3

Strassen’s Multiplication

C11 C12 A11 A12 B11 B12

= *

C21 C22 A21 A22 B21 B22

m1=A11(B12-B22)m2=(A11+A12)B22m3=(A21+A22)B11m4=A22(B21-B11)m5=(A11+A22)(B11+B22)m6=(A12-A22)(B21+B22)m7=(A11-A21)(B11+B12)C11=m5+m4-m2+m6, C21=m3+m4C12=m1+m2 C22=m1+m5-m3-m7

Page 9: 07 dc3

Complexity(multiplication, addition& Subtraction)t(n)=7t(n/2)+kn 2

a=7, b=2, d=2

by applying master theorem

T(n)= n logb a

= nlg7=n2.8 єӨ(n2.8 )