The usual number of scalar operations (i.e., the total number of additions and multiplications) required to perform matrix multiplication is
(1)
|
(i.e.,
multiplications and
additions). However, Strassen (1969) discovered how to multiply two matrices
in
(2)
|
scalar operations, where is the logarithm to base 2,
which is less than
for
.
For
a power of two (
),
the two parts of (2) can be written
(3)
| |||
(4)
| |||
(5)
| |||
(6)
| |||
(7)
| |||
(8)
| |||
(9)
| |||
(10)
| |||
(11)
| |||
(12)
|
so (◇) becomes
(13)
|
The leading exponent for Strassen's algorithm for a power of 2 is therefore .
The folowing table summarizes the improvements of proven limits in the leading exponent
for
th
powers of the construction of Coppersmith and Winograd (1990) over time (cf. Le Gall
2014, Table I).
upper bound | reference | |
1 | 2.3871900 | Coppersmith and Winograd (1990) |
2 | 2.3754770 | Coppersmith and Winograd (1990) |
4 | 2.3736898 | Strothers (2010), Davie and Strothers (2013) |
4 | 2.3729269 | Vassilevska Williams (2012) |
8 | 2.3729 | Vassilevska Williams (2014) |
8 | 2.3728642 | Le Gall (2014) |
16 | 2.3728640 | Le Gall (2014) |
32 | 2.3728639 | Le Gall (2014) |
Using Strassen multipication, matrices can be multiplied
(14)
|
(15)
|
with only
(16)
|
scalar operations (as it turns out, seven of them are multiplications and 18 are additions). Define the seven products (involving a total of 10 additions) as
(17)
| |||
(18)
| |||
(19)
| |||
(20)
| |||
(21)
| |||
(22)
| |||
(23)
|
Then the matrix product is given using the remaining eight additions as
(24)
| |||
(25)
| |||
(26)
| |||
(27)
|
(Strassen 1969, Press et al. 1989).
Matrix inversion of a matrix
to yield
can also be done in fewer operations than expected
using the formulas
(28)
| |||
(29)
| |||
(30)
| |||
(31)
| |||
(32)
| |||
(33)
| |||
(34)
| |||
(35)
| |||
(36)
| |||
(37)
| |||
(38)
|
(Strassen 1969, Press et al. 1989).
Unfortunately, Strassen's algorithm is not numerically well-behaved. It is only weakly stable, i.e., the computed result satisfies the inequality
(39)
|
where
is the unit roundoff error, while the corresponding strong stability inequality (obtained
by replacing matrix norms with absolute values of the matrix elements) does not hold.