Download presentation
Presentation is loading. Please wait.
1
Divide-and-Conquer Matrix multiplication and Strassen’s algorithm
2
Matrix Multiplication How many operations are needed to multiply two 2 by 2 matrices? [ [ rs tu [ [ ab cd [ [ ef gh =
3
Traditional Approach r = ae + bg s = af + bh t = ce + dg u = cf + dh 8 multiplications and 4 additions [ [ rs tu [ [ ab cd [ [ ef gh =
4
Extending to n by n matrices [ [ RS TU [ [ AB CD [ [ EF GH = Each letter represents an n/2 by n/2 matrix We can use the breakdown to form a divide and conquer algorithm R = AE + BG S = AF + BH T = CE + DG U = CF + DH 8 multiplications of n/2 by n/2 matrices T(n) = 8 T(n/2) + (n 2 ) T(n) = (n 3 )
5
Example R = AE + BG S = AF + BH T = CE + DG U = CF + DH [ [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [ [ 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 [ [ = What are A, B, …, H? What happens at this level of the D&C multiplication?
6
Strassen’s Approach p1 = a(f – h) p2 = (a+b)h p3 = (c+d)e p4 = d(g-e) p5 = (a+d)(e + h) p6 = (b-d)(g+h) p7 = (a-c)(e+f) r = p5 + p4 - p2 + p6 s = p1 + p2 t = p3 + p4 u = p5 + p1 – p3 – p7 7 multiplications 18 additions [ [ rs tu [ [ ab cd [ [ ef gh =
7
Extending to n by n matrices [ [ RS TU [ [ AB CD [ [ EF GH = Each letter represents an n/2 by n/2 matrix We can use the breakdown to form a divide and conquer algorithm 7 multiplications of n/2 by n/2 matrices 18 additions of n/2 by n/2 matrices T(n) = 7 T(n/2) + (n 2 ) T(n) = (n lg 7 )
8
Example p1 = a(f – h) p2 = (a+b)h p3 = (c+d)e p4 = d(g-e) p5 = (a+d)(e + h) p6 = (b-d)(g+h) p7 = (a-c)(e+f) r = p5 + p4 - p2 + p6 s = p1 + p2 t = p3 + p4 u = p5 + p1 – p3 – p7 [ [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [ [ 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 [ [ = What are A, B, …, H? What happens at this level of the D&C multiplication?
9
Observations Comparison: n= 70 –Direct multiplication: 70 3 = 343,000 –Strassen: 70 lg 7 is approximately 150,000 –Crossover point typically around n = 20 Hopcroft and Kerr have shown 7 multiplications are necessary to multiply 2 by 2 matrices –But we can do better with larger matrices Current best is O(n 2.376 ) by Coppersmith and Winograd, but it is not practical Best lower bound is (n 2 ) (since there are n 2 entries) Matrix multiplication can be used in some graph algorithms as a fundamental step, so theoretical improvements in the efficiency of this operation can lead to theoretical improvements in those algorithms
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.