One of the Applications of Divide and Conquer
Algorithmic Perspective
Problem: given two matrices output
Running time: compute each takes . There are entries of for a total of time. Lower-bound running time: .
Assume is a power of 2. Let A, B, C, D, E, F, G, H be size matrices.
This demonstrates a recursive Divide and Conquer algorithm, calling 8 subproblems of size . Recombination time:
- Why does it have an recombination time?
Recurrence for matrix multiplication: Same as a naive algorithm. Can we do 2x2 matrix multiplication with fewer than 8 multiplications?
Strassen’s Algorithm
Each involves 1 matrix multiplication, so we used 7 matrix multiplications (less than 8).
Running time:
- bottom layer dominates
- faster than
- best known algorithm
- not employed often because sparse matrices have different effects on runtime
- big open problem: is possible or impossible?