Fast Matrix Multiplication - MathOverflow most recent 30 from http://mathoverflow.net 2013-05-21T20:19:10Z http://mathoverflow.net/feeds/question/34173 http://www.creativecommons.org/licenses/by-nc/2.5/rdf http://mathoverflow.net/questions/34173/fast-matrix-multiplication Fast Matrix Multiplication ilyaraz 2010-08-02T00:01:33Z 2011-03-04T05:25:49Z <p>Suppose we have two $n$ by $n$ matrices over particular ring. We want to multiply them as fast as possible. According to wikipedia there is an <a href="http://en.wikipedia.org/wiki/Coppersmith%E2%80%93Winograd_algorithm" rel="nofollow">algorithm of Coppersmith and Winograd</a> that can do it in $O(n^{2.376})$ time. I have tried to look at the original paper and it scares me. It seems that it is impossible to understand current state of the art.</p> <p>So, the question is the following. Is there any 'gentle' introduction or survey for beginners in this particular field? I took only introductory course in algebra, so it would be nice to know what parts of algebra do these techniques rely on.</p> http://mathoverflow.net/questions/34173/fast-matrix-multiplication/34178#34178 Answer by András Salamon for Fast Matrix Multiplication András Salamon 2010-08-02T00:21:11Z 2010-08-02T00:21:11Z <p>Sara Robinson's survey <a href="http://www.siam.org/news/news.php?id=174" rel="nofollow"><em>Toward an Optimal Algorithm for Matrix Multiplication</em></a>, SIAM News <strong>38</strong> (9), 2005, might be suitable.</p> http://mathoverflow.net/questions/34173/fast-matrix-multiplication/34181#34181 Answer by Gerhard Paseman for Fast Matrix Multiplication Gerhard Paseman 2010-08-02T00:26:30Z 2010-08-02T00:26:30Z <p>Instead of going for state-of-the art immediately, you might read a little bit on the history of the problem. Karatsuba multiplication and the Strassen algorithm should give the core idea. If you look at the Coppersmith-Winograd algorithm closely, you might find an implementation that will make it practical for small n, or a series of examples that will show why it won't be practical.</p> <p>Gerhard "Ask Me About System Design" Paseman, 2010.08.01</p> http://mathoverflow.net/questions/34173/fast-matrix-multiplication/34184#34184 Answer by Ryan O'Donnell for Fast Matrix Multiplication Ryan O'Donnell 2010-08-02T00:38:54Z 2010-08-02T00:38:54Z <p>You may also look at the alternative approach to Coppersmith-Winograd proposed by <a href="http://arxiv.org/PS_cache/math/pdf/0307/0307321v2.pdf" rel="nofollow">Cohn-Umans</a> and <a href="http://arxiv.org/PS_cache/math/pdf/0511/0511460v1.pdf" rel="nofollow">Cohn-Kleinberg-Szegedy-Umans</a>. Their papers are very readable, and the latter gets close to the Coppersmith-Winograd exponent 2.376. It is said that the methods in their paper can also achieve 2.376, but I don't think this is published.</p> http://mathoverflow.net/questions/34173/fast-matrix-multiplication/34195#34195 Answer by Ryan Williams for Fast Matrix Multiplication Ryan Williams 2010-08-02T02:48:46Z 2010-08-02T04:05:41Z <p>Here are some resources I found useful while learning about this stuff.</p> <ul> <li>Victor Pan. How to Multiply Matrices Faster. Springer LNCS, 1984. A paperback edition was available on Amazon at some point, but no longer it seems. This monograph and Pan's 1980 journal paper (which improves on Strassen) are very readable:</li> </ul> <blockquote> <p>Victor Y. Pan: New Fast Algorithms for Matrix Operations. SIAM J. Comput. 9(2): 321-342 (1980)</p> </blockquote> <ul> <li><p>Knuth, The Art of Computer Programming Vol 2 contains a series of exercises that lead you through an $o(n^{2.5})$ matrix multiplication algorithm. Unfortunately I don't have a copy in front of me, so I can't tell you the specific exercises.</p></li> <li><p>A nice exposition by Andrew Stothers: <a href="http://www.maths.ed.ac.uk/~s0237198/report1styr.pdf" rel="nofollow">http://www.maths.ed.ac.uk/~s0237198/report1styr.pdf</a></p></li> <li><p><strong>EDIT:</strong> <del>There are some other lecture notes out there that I can't seem to dig up at the moment.</del> Here they are: <a href="http://www-cc.cs.uni-saarland.de/teaching/SS09/ComplexityofBilinearProblems/script.pdf" rel="nofollow">http://www-cc.cs.uni-saarland.de/teaching/SS09/ComplexityofBilinearProblems/script.pdf</a></p></li> </ul> <p>If you search for "strassen laser method" you will find more nice hits. In principle, "schoenhage tau theorem" should also yield results, but it doesn't seem to. (These are the two prior results that Coppersmith-Winograd build on.)</p> http://mathoverflow.net/questions/34173/fast-matrix-multiplication/34308#34308 Answer by Federico Poloni for Fast Matrix Multiplication Federico Poloni 2010-08-02T23:00:04Z 2010-08-02T23:00:04Z <p>There's a chapter on fast matrix multiplication on: Algebraic complexity theory - Peter Bürgisser, Michael Clausen, Mohammad Amin Shokrollahi.</p> http://mathoverflow.net/questions/34173/fast-matrix-multiplication/38861#38861 Answer by Denis Serre for Fast Matrix Multiplication Denis Serre 2010-09-15T19:45:52Z 2010-09-15T19:45:52Z <p>An other reference, in French:</p> <p>J. Abdeljaoued, H. Lombardi. <em>Méthodes Matricielles. Introduction à la Complexité Algébrique</em>. SMAI series ``Mathématiques et Applications''. Springer-Verlag (2003).</p> http://mathoverflow.net/questions/34173/fast-matrix-multiplication/57301#57301 Answer by Klim Efremenko for Fast Matrix Multiplication Klim Efremenko 2011-03-03T23:12:56Z 2011-03-03T23:12:56Z <p><a href="http://www-cc.cs.uni-saarland.de/teaching/SS09/ComplexityofBilinearProblems/script.pdf" rel="nofollow">http://www-cc.cs.uni-saarland.de/teaching/SS09/ComplexityofBilinearProblems/script.pdf</a> It has some typos but except this it is really good.</p> http://mathoverflow.net/questions/34173/fast-matrix-multiplication/57322#57322 Answer by Jon Yard for Fast Matrix Multiplication Jon Yard 2011-03-04T05:25:49Z 2011-03-04T05:25:49Z <p><a href="http://www.ams.org/journals/bull/2008-45-02/S0273-0979-08-01176-2/home.html" rel="nofollow">"Geometry and the complexity of matrix multiplication"</a>, by J. Landsberg from the AMS bulletin is a very nice article. It describes an approach to this problem based on algebraic geometry, that of bounding the "border rank" of the sequence of bilinear maps defining matrix multiplication. I don't think it reproduces the state of the art yet (but I'm not an expert so maybe), but it is a well-defined mathematical program that should in principle be able to uncover the optimal exponent. I think at least the basics of the approach should be pretty understandable with a minimum of background, but the whole theory does go pretty deep and technical. I believe this is, however, the nature of the beast - it is a shockingly deep question.</p>