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?