Description

A description of the Strassen's Algorithm for matrix multiplication

All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.

Related Documents

Share

Transcript

Strassen algorithm
From Wikipedia, the free encyclopedia
In the mathematical discipline of linear algebra,
the Strassen algorithm
, named after Volker Strassen, is an algorithm usedfor matrix multiplication. It is faster than the standard matrix multiplication algorithm and is useful in practice for largematrices, but would be slower than the fastest known algorithm for extremely large matrices.
Contents
1 History2 Algorithm3 Asymptotic complexity3.1 Rank or bilinear complexity4 Implementation considerations5 See also6 References7 External links
History
Volker Strassen published the Strassen algorithm in 1969. Although his algorithm is only slightly faster than the standardalgorithm for matrix multiplication, he was the first to point out that the standard approach is not optimal. His paper startedthe search for even faster algorithms such as the more complex Coppersmith–Winograd algorithm published in 1987.
Algorithm
The left column represents 2x2 matrix multiplication. Naïve matrix multiplication requires one multiplication for each 1 of the leftcolumn. Each of the other columns represents a single one of the 7 multiplications in the algorithm, and the sum of the columns gives thefull matrix multiplication on the left.
Let
A
,
B
be two square matrices over a ring
R
. We want to calculate the matrix product
C
as
If the matrices
A
,
B
are not of type 2
n
x 2
n
we fill the missing rows and columns with zeros.We partition
A
,
B
and
C
into equally sized block matriceswiththenWith this construction we have not reduced the number of multiplications. We still need 8 multiplications to calculate the
C
i,j
matrices, the same number of multiplications we need when using standard matrix multiplication. Now comes the important part. We define new matricesonly using 7 multiplications (one for each
M
k
) instead of 8. We may now express the
C
i,j
in terms of
M
k
, like this:We iterate this division process
n
times (recursively) until the submatrices degenerate into numbers (elements of the ring
R
).The resulting product will be padded with zeroes just like
A
and
B
, and should be stripped of the corresponding rows andcolumns.Practical implementations of Strassen's algorithm switch to standard methods of matrix multiplication for small enoughsubmatrices, for which those algorithms are more efficient. The particular crossover point for which Strassen's algorithm ismore efficient depends on the specific implementation and hardware. Earlier authors had estimated that Strassen's algorithm isfaster for matrices with widths from 32 to 128 for optimized implementations.
[1]
However, it has been observed that thiscrossover point has been increasing in recent years, and a 2010 study found that even a single step of Strassen's algorithm isoften not beneficial on current architectures, compared to a highly optimized traditional multiplication, until matrix sizesexceed 1000 or more, and even for matrix sizes of several thousand the benefit is typically marginal at best (around 10% or less).
[2]

We Need Your Support

Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks

SAVE OUR EARTH

We need your sign to support Project to invent "SMART AND CONTROLLABLE REFLECTIVE BALLOONS" to cover the Sun and Save Our Earth.

More details...Sign Now!

We are very appreciated for your Prompt Action!

x