Computational complexity of matrix multiplication

Last updated
Unsolved problem in computer science:

What is the fastest algorithm for matrix multiplication?

Contents

In theoretical computer science, the computational complexity of matrix multiplication dictates how quickly the operation of matrix multiplication can be performed. Matrix multiplication algorithms are a central subroutine in theoretical and numerical algorithms for numerical linear algebra and optimization, so finding the fastest algorithm for matrix multiplication is of major practical relevance.

Directly applying the mathematical definition of matrix multiplication gives an algorithm that requires n3 field operations to multiply two n × n matrices over that field (Θ(n3) in big O notation). Surprisingly, algorithms exist that provide better running times than this straightforward "schoolbook algorithm". The first to be discovered was Strassen's algorithm, devised by Volker Strassen in 1969 and often referred to as "fast matrix multiplication". [1] The optimal number of field operations needed to multiply two square n × n matrices up to constant factors is still unknown. This is a major open question in theoretical computer science.

As of January 2024, the best bound on the asymptotic complexity of a matrix multiplication algorithm is O(n2.371552). [2] [3] However, this and similar improvements to Strassen are not used in practice, because they are galactic algorithms: the constant coefficient hidden by the big O notation is so large that they are only worthwhile for matrices that are too large to handle on present-day computers. [4] [5]

Simple algorithms

If A, B are n × n matrices over a field, then their product AB is also an n × n matrix over that field, defined entrywise as

Schoolbook algorithm

The simplest approach to computing the product of two n × n matrices A and B is to compute the arithmetic expressions coming from the definition of matrix multiplication. In pseudocode:

inputA and B, both n by n matrices initializeC to be an n by n matrix of all zeros fori from 1 to n:     forj from 1 to n:         fork from 1 to n:             C[i][j] = C[i][j] + A[i][k]*B[k][j] outputC (as A*B)

This algorithm requires, in the worst case, multiplications of scalars and additions for computing the product of two square n×n matrices. Its computational complexity is therefore , in a model of computation where field operations (addition and multiplication) take constant time (in practice, this is the case for floating point numbers, but not necessarily for integers).

Strassen's algorithm

Strassen's algorithm improves on naive matrix multiplication through a divide-and-conquer approach. The key observation is that multiplying two 2 × 2 matrices can be done with only 7 multiplications, instead of the usual 8 (at the expense of 11 additional addition and subtraction operations). This means that, treating the input n×n matrices as block 2 × 2 matrices, the task of multiplying n×n matrices can be reduced to 7 subproblems of multiplying n/2×n/2 matrices. Applying this recursively gives an algorithm needing field operations.

Unlike algorithms with faster asymptotic complexity, Strassen's algorithm is used in practice. The numerical stability is reduced compared to the naive algorithm, [6] but it is faster in cases where n > 100 or so [7] and appears in several libraries, such as BLAS. [8] Fast matrix multiplication algorithms cannot achieve component-wise stability, but some can be shown to exhibit norm-wise stability. [9] It is very useful for large matrices over exact domains such as finite fields, where numerical stability is not an issue.

Matrix multiplication exponent

Improvement of estimates of exponent o over time for the computational complexity of matrix multiplication
O
(
n
o
)
{\displaystyle O(n^{\omega })} MatrixMultComplexity svg.svg
Improvement of estimates of exponent ω over time for the computational complexity of matrix multiplication
Closeup of 1990-2023 MatrixMultComplexity1990 svg.svg
Closeup of 1990–2023
Timeline of matrix multiplication exponent
YearBound on omegaAuthors
19692.8074 Strassen [1]
19782.796 Pan [10]
19792.780Bini, Capovani  [ it ], Romani [11]
19812.522 Schönhage [12]
19812.517Romani [13]
19812.496 Coppersmith, Winograd [14]
19862.479 Strassen [15]
19902.3755 Coppersmith, Winograd [16]
20102.3737Stothers [17]
20122.3729 Williams [18] [19]
20142.3728639Le Gall [20]
20202.3728596Alman, Williams [21] [22]
20222.371866Duan, Wu, Zhou [23]
20242.371552 Williams, Xu, Xu, and Zhou [2]

The matrix multiplication exponent, usually denoted ω, is the smallest real number for which any two matrices over a field can be multiplied together using field operations. This notation is commonly used in algorithms research, so that algorithms using matrix multiplication as a subroutine have bounds on running time that can update as bounds on ω improve.

Using a naive lower bound and schoolbook matrix multiplication for the upper bound, one can straightforwardly conclude that 2 ≤ ω ≤ 3. Whether ω = 2 is a major open question in theoretical computer science, and there is a line of research developing matrix multiplication algorithms to get improved bounds on ω.

All recent algorithms in this line of research use the laser method, a generalization of the Coppersmith–Winograd algorithm, which was given by Don Coppersmith and Shmuel Winograd in 1990 and was the best matrix multiplication algorithm until 2010. [24] The conceptual idea of these algorithms is similar to Strassen's algorithm: a way is devised for multiplying two k × k-matrices with fewer than k3 multiplications, and this technique is applied recursively. The laser method has limitations to its power, Ambainis, Filmus and Le Gall prove that it cannot be used to show that ω < 2.3725 by analyzing higher and higher tensor powers of a certain identity of Coppersmith and Winograd and neither ω < 2.3078 for a wide class of variants of this approach. [25] In 2022 Duan, Wu and Zhou devised a variant breaking the first of the two barriers with ω < 2.37188 [23] , they do so by identifying a source of potential optimization in the laser method termed combination loss for which they compensate using an asymmetric version of the hashing method in the Coppersmith–Winograd algorithm.

Group theory reformulation of matrix multiplication algorithms

Henry Cohn, Robert Kleinberg, Balázs Szegedy and Chris Umans put methods such as the Strassen and Coppersmith–Winograd algorithms in an entirely different group-theoretic context, by utilising triples of subsets of finite groups which satisfy a disjointness property called the triple product property (TPP). They also give conjectures that, if true, would imply that there are matrix multiplication algorithms with essentially quadratic complexity. This implies that the optimal exponent of matrix multiplication is 2, which most researchers believe is indeed the case. [5] One such conjecture is that families of wreath products of Abelian groups with symmetric groups realise families of subset triples with a simultaneous version of the TPP. [26] [27] Several of their conjectures have since been disproven by Blasiak, Cohn, Church, Grochow, Naslund, Sawin, and Umans using the Slice Rank method. [28] Further, Alon, Shpilka and Chris Umans have recently shown that some of these conjectures implying fast matrix multiplication are incompatible with another plausible conjecture, the sunflower conjecture, [29] which in turn is related to the cap set problem. [28]

Lower bounds for ω

There is a trivial lower bound of . Since any algorithm for multiplying two n × n-matrices has to process all 2n2 entries, there is a trivial asymptotic lower bound of Ω(n2) operations for any matrix multiplication algorithm. Thus . It is unknown whether . The best known lower bound for matrix-multiplication complexity is Ω(n2 log(n)), for bounded coefficient arithmetic circuits over the real or complex numbers, and is due to Ran Raz. [30]

The exponent ω is defined to be a limit point, in that it is the infimum of the exponent over all matrix multiplication algorithms. It is known that this limit point is not achieved. In other words, under the model of computation typically studied, there is no matrix multiplication algorithm that uses precisely O(nω) operations; there must be an additional factor of no(1). [14]

Rectangular matrix multiplication

Similar techniques also apply to rectangular matrix multiplication. The central object of study is , which is the smallest such that one can multiply a matrix of size with a matrix of size with arithmetic operations. A result in algebraic complexity states that multiplying matrices of size and requires the same number of arithmetic operations as multiplying matrices of size and and of size and , so this encompasses the complexity of rectangular matrix multiplication. [31] This generalizes the square matrix multiplication exponent, since .

Since the output of the matrix multiplication problem is size , we have for all values of . If one can prove for some values of between 0 and 1 that , then such a result shows that for those . The largest k such that is known as the dual matrix multiplication exponent, usually denoted α. α is referred to as the "dual" because showing that is equivalent to showing that . Like the matrix multiplication exponent, the dual matrix multiplication exponent sometimes appears in the complexity of algorithms in numerical linear algebra and optimization. [32]

The first bound on α is by Coppersmith in 1982, who showed that . [33] The current best peer-reviewed bound on α is , given by Williams, Xu, Xu, and Zhou. [2]

Problems that have the same asymptotic complexity as matrix multiplication include determinant, matrix inversion, Gaussian elimination (see next section). Problems with complexity that is expressible in terms of include characteristic polynomial, eigenvalues (but not eigenvectors), Hermite normal form, and Smith normal form.[ citation needed ]

Matrix inversion, determinant and Gaussian elimination

In his 1969 paper, where he proved the complexity for matrix computation, Strassen proved also that matrix inversion, determinant and Gaussian elimination have, up to a multiplicative constant, the same computational complexity as matrix multiplication. The proof does not make any assumptions on matrix multiplication that is used, except that its complexity is for some

The starting point of Strassen's proof is using block matrix multiplication. Specifically, a matrix of even dimension 2n×2n may be partitioned in four n×n blocks

Under this form, its inverse is

provided that A and are invertible.

Thus, the inverse of a 2n×2n matrix may be computed with two inversions, six multiplications and four additions or additive inverses of n×n matrices. It follows that, denoting respectively by I(n), M(n) and A(n) = n2 the number of operations needed for inverting, multiplying and adding n×n matrices, one has

If one may apply this formula recursively:

If and one gets eventually

for some constant d.

For matrices whose dimension is not a power of two, the same complexity is reached by increasing the dimension of the matrix to a power of two, by padding the matrix with rows and columns whose entries are 1 on the diagonal and 0 elsewhere.

This proves the asserted complexity for matrices such that all submatrices that have to be inverted are indeed invertible. This complexity is thus proved for almost all matrices, as a matrix with randomly chosen entries is invertible with probability one.

The same argument applies to LU decomposition, as, if the matrix A is invertible, the equality

defines a block LU decomposition that may be applied recursively to and for getting eventually a true LU decomposition of the original matrix.

The argument applies also for the determinant, since it results from the block LU decomposition that

Minimizing number of multiplications

Related to the problem of minimizing the number of arithmetic operations is minimizing the number of multiplications, which is typically a more costly operation than addition. A algorithm for matrix multiplication must necessarily only use multiplication operations, but these algorithms are impractical. Improving from the naive multiplications for schoolbook multiplication, matrices in can be done with 47 multiplications, [34] matrix multiplication over a commutative ring can be done in 21 multiplications [35] [36] (23 if non-commutative [37] ). The lower bound of multiplications needed is 2mn+2nm−2 (multiplication of n×m-matrices with m×n-matrices using the substitution method, mn⩾3), which means n=3 case requires at least 19 multiplications and n=4 at least 34. [38] For n=2 optimal 7 multiplications 15 additions are minimal, compared to only 4 additions for 8 multiplications. [39] [40]

See also

Related Research Articles

In mathematics, the determinant is a scalar value that is a function of the entries of a square matrix. The determinant of a matrix A is commonly denoted det(A), det A, or |A|. Its value characterizes some properties of the matrix and the linear map represented, on a given basis, by the matrix. In particular, the determinant is nonzero if and only if the matrix is invertible and the corresponding linear map is an isomorphism. The determinant of a product of matrices is the product of their determinants.

<span class="mw-page-title-main">Gaussian elimination</span> Algorithm for solving systems of linear equations

In mathematics, Gaussian elimination, also known as row reduction, is an algorithm for solving systems of linear equations. It consists of a sequence of row-wise operations performed on the corresponding matrix of coefficients. This method can also be used to compute the rank of a matrix, the determinant of a square matrix, and the inverse of an invertible matrix. The method is named after Carl Friedrich Gauss (1777–1855). To perform row reduction on a matrix, one uses a sequence of elementary row operations to modify the matrix until the lower left-hand corner of the matrix is filled with zeros, as much as possible. There are three types of elementary row operations:

<span class="mw-page-title-main">Matrix multiplication</span> Mathematical operation in linear algebra

In mathematics, particularly in linear algebra, matrix multiplication is a binary operation that produces a matrix from two matrices. For matrix multiplication, the number of columns in the first matrix must be equal to the number of rows in the second matrix. The resulting matrix, known as the matrix product, has the number of rows of the first and the number of columns of the second matrix. The product of matrices A and B is denoted as AB.

In linear algebra, a Toeplitz matrix or diagonal-constant matrix, named after Otto Toeplitz, is a matrix in which each descending diagonal from left to right is constant. For instance, the following matrix is a Toeplitz matrix:

In linear algebra, an n-by-n square matrix A is called invertible if there exists an n-by-n square matrix B such that

In mathematics, the determinant of an m×m skew-symmetric matrix can always be written as the square of a polynomial in the matrix entries, a polynomial with integer coefficients that only depends on m. When m is odd, the polynomial is zero. When m is even, it is a nonzero polynomial of degree m/2, and is unique up to multiplication by ±1. The convention on skew-symmetric tridiagonal matrices, given below in the examples, then determines one specific polynomial, called the Pfaffian polynomial. The value of this polynomial, when applied to the entries of a skew-symmetric matrix, is called the Pfaffian of that matrix. The term Pfaffian was introduced by Cayley, who indirectly named them after Johann Friedrich Pfaff.

In linear algebra, the Strassen algorithm, named after Volker Strassen, is an algorithm for matrix multiplication. It is faster than the standard matrix multiplication algorithm for large matrices, with a better asymptotic complexity, although the naive algorithm is often better for smaller matrices. The Strassen algorithm is slower than the fastest known algorithms for extremely large matrices, but such galactic algorithms are not useful in practice, as they are much slower for matrices of practical size. For small matrices even faster algorithms exist.

In linear algebra, a circulant matrix is a square matrix in which all rows are composed of the same elements and each row is rotated one element to the right relative to the preceding row. It is a particular kind of Toeplitz matrix.

Matrix chain multiplication is an optimization problem concerning the most efficient way to multiply a given sequence of matrices. The problem is not actually to perform the multiplications, but merely to decide the sequence of the matrix multiplications involved. The problem may be solved using dynamic programming.

In numerical linear algebra, the method of successive over-relaxation (SOR) is a variant of the Gauss–Seidel method for solving a linear system of equations, resulting in faster convergence. A similar method can be used for any slowly converging iterative process.

Freivalds' algorithm is a probabilistic randomized algorithm used to verify matrix multiplication. Given three n × n matrices , , and , a general problem is to verify whether . A naïve algorithm would compute the product explicitly and compare term by term whether this product equals . However, the best known matrix multiplication algorithm runs in time. Freivalds' algorithm utilizes randomization in order to reduce this time bound to with high probability. In time the algorithm can verify a matrix product with probability of failure less than .

<span class="mw-page-title-main">Computational complexity of mathematical operations</span> Algorithmic runtime requirements for common math procedures

The following tables list the computational complexity of various algorithms for common mathematical operations.

<span class="mw-page-title-main">Victor Pan</span> Soviet American mathematician

Victor Yakovlevich Pan is a Soviet and American mathematician and computer scientist, known for his research on algorithms for polynomials and matrix multiplication.

Because matrix multiplication is such a central operation in many numerical algorithms, much work has been invested in making matrix multiplication algorithms efficient. Applications of matrix multiplication in computational problems are found in many fields including scientific computing and pattern recognition and in seemingly unrelated problems such as counting the paths through a graph. Many different algorithms have been designed for multiplying matrices on different types of hardware, including parallel and distributed systems, where the computational work is spread over multiple processors.

In computational complexity theory, arithmetic circuits are the standard model for computing polynomials. Informally, an arithmetic circuit takes as inputs either variables or numbers, and is allowed to either add or multiply two expressions it has already computed. Arithmetic circuits provide a formal way to understand the complexity of computing polynomials. The basic type of question in this line of research is "what is the most efficient way to compute a given polynomial ?"

Quantum complexity theory is the subfield of computational complexity theory that deals with complexity classes defined using quantum computers, a computational model based on quantum mechanics. It studies the hardness of computational problems in relation to these complexity classes, as well as the relationship between quantum complexity classes and classical complexity classes.

In numerical mathematics, hierarchical matrices (H-matrices) are used as data-sparse approximations of non-sparse matrices. While a sparse matrix of dimension can be represented efficiently in units of storage by storing only its non-zero entries, a non-sparse matrix would require units of storage, and using this type of matrices for large problems would therefore be prohibitively expensive in terms of storage and computing time. Hierarchical matrices provide an approximation requiring only units of storage, where is a parameter controlling the accuracy of the approximation. In typical applications, e.g., when discretizing integral equations, preconditioning the resulting systems of linear equations, or solving elliptic partial differential equations, a rank proportional to with a small constant is sufficient to ensure an accuracy of . Compared to many other data-sparse representations of non-sparse matrices, hierarchical matrices offer a major advantage: the results of matrix arithmetic operations like matrix multiplication, factorization or inversion can be approximated in operations, where

The spectral correlation density (SCD), sometimes also called the cyclic spectral density or spectral correlation function, is a function that describes the cross-spectral density of all pairs of frequency-shifted versions of a time-series. The spectral correlation density applies only to cyclostationary processes because stationary processes do not exhibit spectral correlation. Spectral correlation has been used both in signal detection and signal classification. The spectral correlation density is closely related to each of the bilinear time-frequency distributions, but is not considered one of Cohen's class of distributions.

<span class="mw-page-title-main">Virginia Vassilevska Williams</span> Theoretical computer scientist

Virginia Vassilevska Williams is a theoretical computer scientist and mathematician known for her research in computational complexity theory and algorithms. She is currently the Steven and Renee Finn Career Development Associate Professor of Electrical Engineering and Computer Science at the Massachusetts Institute of Technology. She is notable for her breakthrough results in fast matrix multiplication, for her work on dynamic algorithms, and for helping to develop the field of fine-grained complexity.

In mathematics and computer science, polynomial evaluation refers to computation of the value of a polynomial when its indeterminates are substituted for some values. In other words, evaluating the polynomial at consists of computing See also Polynomial ring § Polynomial evaluation

References

  1. 1 2 Volker Strassen (Aug 1969). "Gaussian elimination is not optimal". Numerische Mathematik. 13 (4): 354–356. doi:10.1007/BF02165411. S2CID   121656251.
  2. 1 2 3 Vassilevska Williams, Virginia; Xu, Yinzhan; Xu, Zixuan; Zhou, Renfei. New Bounds for Matrix Multiplication: from Alpha to Omega. Proceedings of the 2024 Annual ACM-SIAM Symposium on Discrete Algorithms (SODA). pp. 3792–3835. arXiv: 2307.07970 . doi:10.1137/1.9781611977912.134.
  3. Nadis, Steve (March 7, 2024). "New Breakthrough Brings Matrix Multiplication Closer to Ideal" . Retrieved 2024-03-09.
  4. Iliopoulos, Costas S. (1989). "Worst-case complexity bounds on algorithms for computing the canonical structure of finite abelian groups and the Hermite and Smith normal forms of an integer matrix" (PDF). SIAM Journal on Computing. 18 (4): 658–669. CiteSeerX   10.1.1.531.9309 . doi:10.1137/0218045. MR   1004789. Archived from the original (PDF) on 2014-03-05. Retrieved 2015-01-16. The Coppersmith–Winograd algorithm is not practical, due to the very large hidden constant in the upper bound on the number of multiplications required.
  5. 1 2 Robinson, Sara (November 2005). "Toward an Optimal Algorithm for Matrix Multiplication" (PDF). SIAM News. 38 (9). Even if someone manages to prove one of the conjectures—thereby demonstrating that ω = 2—the wreath product approach is unlikely to be applicable to the large matrix problems that arise in practice. [...] the input matrices must be astronomically large for the difference in time to be apparent.
  6. Miller, Webb (1975). "Computational complexity and numerical stability". SIAM News. 4 (2): 97–107. CiteSeerX   10.1.1.148.9947 . doi:10.1137/0204009.
  7. Skiena, Steven (2012). "Sorting and Searching". The Algorithm Design Manual . Springer. pp.  45–46, 401–403. doi:10.1007/978-1-84800-070-4_4. ISBN   978-1-84800-069-8.
  8. Press, William H.; Flannery, Brian P.; Teukolsky, Saul A.; Vetterling, William T. (2007). Numerical Recipes: The Art of Scientific Computing (3rd ed.). Cambridge University Press. p.  108. ISBN   978-0-521-88068-8.
  9. Ballard, Grey; Benson, Austin R.; Druinsky, Alex; Lipshitz, Benjamin; Schwartz, Oded (2016). "Improving the numerical stability of fast matrix multiplication". SIAM Journal on Matrix Analysis and Applications. 37 (4): 1382–1418. arXiv: 1507.00687 . doi:10.1137/15M1032168. S2CID   2853388.
  10. Victor Yakovlevich Pan (Oct 1978). "Strassen's Algorithm is not Optimal: Trilinear Technique of Aggregating, Uniting and Canceling for Constructing Fast Algorithms for Matrix Operations". Proc. 19th FOCS. pp. 166–176. doi:10.1109/SFCS.1978.34. S2CID   14348408.
  11. Dario Andrea Bini; Milvio Capovani; Francesco Romani; Grazia Lotti (Jun 1979). " complexity for approximate matrix multiplication". Information Processing Letters. 8 (5): 234–235. doi:10.1016/0020-0190(79)90113-3.
  12. A. Schönhage (1981). "Partial and total matrix multiplication". SIAM Journal on Computing. 10 (3): 434–455. doi:10.1137/0210032.
  13. Francesco Romani (1982). "Some properties of disjoint sums of tensors related to matrix multiplication". SIAM Journal on Computing. 11 (2): 263–267. doi:10.1137/0211020.
  14. 1 2 D. Coppersmith; S. Winograd (1981). "On the asymptotic complexity of matrix multiplication". Proc. 22nd Annual Symposium on Foundations of Computer Science (FOCS). pp. 82–90. doi:10.1109/SFCS.1981.27. S2CID   206558664.
  15. Volker Strassen (Oct 1986). "The asymptotic spectrum of tensors and the exponent of matrix multiplication". Proc. 27th Ann. Symp. on Foundation of Computer Science (FOCS). pp. 49–54. doi:10.1109/SFCS.1986.52. S2CID   15077423.
  16. D. Coppersmith; S. Winograd (Mar 1990). "Matrix multiplication via arithmetic progressions". Journal of Symbolic Computation. 9 (3): 251–280. doi: 10.1016/S0747-7171(08)80013-2 .
  17. Stothers, Andrew James (2010). On the complexity of matrix multiplication (Ph.D. thesis). University of Edinburgh.
  18. Virginia Vassilevska Williams (2012). "Multiplying Matrices Faster than Coppersmith-Winograd". In Howard J. Karloff; Toniann Pitassi (eds.). Proc. 44th Symposium on Theory of Computing (STOC). ACM. pp. 887–898. doi:10.1145/2213977.2214056. S2CID   14350287.
  19. Williams, Virginia Vassilevska. Multiplying matrices in time (PDF) (Technical Report). Stanford University.
  20. Le Gall, François (2014). "Algebraic complexity theory and matrix multiplication". In Katsusuke Nabeshima (ed.). Proceedings of the 39th International Symposium on Symbolic and Algebraic Computation - ISSAC '14. pp. 296–303. arXiv: 1401.7714 . Bibcode:2014arXiv1401.7714L. doi:10.1145/2608628.2627493. ISBN   978-1-4503-2501-1. S2CID   2597483.
  21. Alman, Josh; Williams, Virginia Vassilevska (2020). "A Refined Laser Method and Faster Matrix Multiplication". 32nd Annual ACM-SIAM Symposium on Discrete Algorithms (SODA 2021). arXiv: 2010.05846 .
  22. Hartnett, Kevin (23 March 2021). "Matrix Multiplication Inches Closer to Mythic Goal". Quanta Magazine. Retrieved 2021-04-01.
  23. 1 2 Duan, Ran; Wu, Hongxun; Zhou, Renfei (2022). "Faster Matrix Multiplication via Asymmetric Hashing". arXiv: 2210.10173 [cs.DS].
  24. Coppersmith, Don; Winograd, Shmuel (1990). "Matrix multiplication via arithmetic progressions" (PDF). Journal of Symbolic Computation. 9 (3): 251. doi: 10.1016/S0747-7171(08)80013-2 .
  25. Ambainis, Andris; Filmus, Yuval; Le Gall, François (2015-06-14). "Fast Matrix Multiplication". Proceedings of the forty-seventh annual ACM symposium on Theory of Computing. STOC '15. Portland, Oregon, USA: Association for Computing Machinery. pp. 585–593. arXiv: 1411.5414 . doi:10.1145/2746539.2746554. ISBN   978-1-4503-3536-2. S2CID   8332797.
  26. Cohn, H.; Kleinberg, R.; Szegedy, B.; Umans, C. (2005). "Group-theoretic Algorithms for Matrix Multiplication". 46th Annual IEEE Symposium on Foundations of Computer Science (FOCS'05). p. 379. doi:10.1109/SFCS.2005.39. ISBN   0-7695-2468-0. S2CID   41278294.
  27. Cohn, Henry; Umans, Chris (2003). "A Group-theoretic Approach to Fast Matrix Multiplication". Proceedings of the 44th Annual IEEE Symposium on Foundations of Computer Science, 11–14 October 2003. IEEE Computer Society. pp. 438–449. arXiv: math.GR/0307321 . doi:10.1109/SFCS.2003.1238217. ISBN   0-7695-2040-5. S2CID   5890100.
  28. 1 2 Blasiak, J.; Cohn, H.; Church, T.; Grochow, J.; Naslund, E.; Sawin, W.; Umans, C. (2017). "On cap sets and the group-theoretic approach to matrix multiplication". Discrete Analysis. p. 1245. doi:10.19086/da.1245. S2CID   9687868.
  29. Alon, N.; Shpilka, A.; Umans, C. (April 2011). "On Sunflowers and Matrix Multiplication". Electronic Colloquium on Computational Complexity. TR11-067.
  30. Raz, Ran (2002). "On the complexity of matrix product". Proceedings of the thiry-fourth annual ACM symposium on Theory of computing. pp. 144–151. doi:10.1145/509907.509932. ISBN   1581134959. S2CID   9582328.
  31. Gall, Francois Le; Urrutia, Florent (2018-01-01). Improved Rectangular Matrix Multiplication using Powers of the Coppersmith-Winograd Tensor. Proceedings. Society for Industrial and Applied Mathematics. pp. 1029–1046. arXiv: 1708.05622 . doi:10.1137/1.9781611975031.67. ISBN   978-1-61197-503-1. S2CID   33396059 . Retrieved 2021-05-23.{{cite book}}: |work= ignored (help)
  32. Cohen, Michael B.; Lee, Yin Tat; Song, Zhao (2021-01-05). "Solving Linear Programs in the Current Matrix Multiplication Time". Journal of the ACM. 68 (1): 3:1–3:39. arXiv: 1810.07896 . doi:10.1145/3424305. ISSN   0004-5411. S2CID   231955576.
  33. Coppersmith, D. (1982-08-01). "Rapid Multiplication of Rectangular Matrices" . SIAM Journal on Computing. 11 (3): 467–471. doi:10.1137/0211037. ISSN   0097-5397.
  34. See Extended Data Fig. 1: Algorithm for multiplying 4 × 4 matrices in modular arithmetic ()) with 47 multiplications in Fawzi, A.; Balog, M.; Huang, A.; Hubert, T.; Romera-Paredes, B.; Barekatain, M.; Novikov, A.; r Ruiz, F. J.; Schrittwieser, J.; Swirszcz, G.; Silver, D.; Hassabis, D.; Kohli, P. (2022). "Discovering faster matrix multiplication algorithms with reinforcement learning". Nature. 610 (7930): 47–53. Bibcode:2022Natur.610...47F. doi:10.1038/s41586-022-05172-4. PMC   9534758 . PMID   36198780.
  35. Rosowski, Andreas (2020-07-27). "Fast Commutative Matrix Algorithm". arXiv: 1904.07683 .{{cite journal}}: Cite journal requires |journal= (help)
  36. Makarov, O. M. (1986). "An algorithm for multiplying 3×3 matrices". Zhurnal Vychislitel'noi Matematiki I Matematicheskoi Fiziki. 26 (2): 293–294. Retrieved 5 October 2022.
    Also in Makarov, O. M. (1986). "An algorithm for multiplying 3×3 matrices". USSR Computational Mathematics and Mathematical Physics. 26: 179–180. doi:10.1016/0041-5553(86)90203-X.
  37. Laderman, Julian D. (1976). "A noncommutative algorithm for multiplying 3×3 matrices using 23 multiplications". Bulletin of the American Mathematical Society. 82 (1): 126–128. doi: 10.1090/S0002-9904-1976-13988-2 . ISSN   0002-9904.
  38. Bläser, Markus (February 2003). "On the complexity of the multiplication of matrices of small formats". Journal of Complexity. 19 (1): 43–60. doi: 10.1016/S0885-064X(02)00007-9 .
  39. Winograd, S. (1971-10-01). "On multiplication of 2 × 2 matrices". Linear Algebra and Its Applications. 4 (4): 381–388. doi: 10.1016/0024-3795(71)90009-7 . ISSN   0024-3795.
  40. L., Probert, R. (1973). On the complexity of matrix multiplication. University of Waterloo. OCLC   1124200063.{{cite book}}: CS1 maint: multiple names: authors list (link)