Algoritme de Strassen
En la disciplina matemàtica del àlgebra llineal, l'algoritme de Strassen, cridat aixina per Volker Strassen, és un algoritme usat per a la multiplicació de matrius. És asintóticamente més ràpit que l'algoritme de multiplicació de matrius estàndar, pero més llent que l'algoritme més ràpit conegut, i és útil en la pràctica per a matrius grans.
Història
[editar | editar còdic]Volker Strassen va publicar l'algoritme de Strassen en 1969. Pese a que el seu algoritme és només llaugerament més ràpit que l'algoritme estàndar per a la multiplicació de matrius, va anar el primer en senyalar que l'enfocament estàndar no és òptim. El seu artícul va començar la busca d'algoritmes encara més ràpits, com el complex algoritme de Coppersmith–Winograd de Shmuel Winograd en 2010 (que utilisa 20 multiplicacions binarias, pero utilisa 155 sumes binarias en lloc de les 18 de l'algoritme de Strassen), publicat en 2000 .
Algoritme
[editar | editar còdic]Sean A, B dos matrius quadrades sobre un anell R. Volem calcular la matriu C com a producte
Si les matrius A, B no són de tipo 2n x 2n caldrà reblir lo que falta de files i columnes en zeros.
Partim A, B i C en matrius d'igual tamany de bloc
En
Llavors
En esta construcció, no hem reduït el número de multiplicacions. Encara tenim 8 multiplicacions per a calcular la matriu Ci, j , que és el mateix número de multiplicacions que es necessiten quan s'usa el método estàndar de multiplicació de matrius.
Ara ve la part important. Definim les matrius de nou
que després s'utilisen per a expressar Ci, j en térmens de Mk. Per la nostra definició de la Mk podem eliminar una multiplicació de matrius i reduir el número de multiplicacions a 7 (una multiplicació per cada Mk) i expressar Ci, j com
Iteramos n-voltes el procés de divisió fins que les submatrices degeneran en números (elements de l'anelle R).
Les implementacions pràctiques de l'algoritme de Strassen, permeten canviar a métodos estàndar de multiplicació de matrius per a submatrices lo suficientment menudes, per a les quals són més eficients. El punt a partir del com l'algoritme de Strassen és més eficient depén de l'implementació específica i del hardware. S'ha estimat que l'algoritme de Strassen és més ràpit per a matrius en esgambi des de 32 a 128 per a implementacions optimisades,[1] i 60.000 o més per a implementacions bàsiques.[2]
Referències
[editar | editar còdic]- Strassen, Volker, L'eliminació gaussiana no és òptima, Numer. Math. 13, p. 354-356, 1969
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, i Clifford Stein. Introducció als algoritmes, Segona edició. MIT Press i McGraw-Hill, 2001. ISBN 0-262-03293-7. Capítul 28: Secció 28.2: Algoritme de Strassen per a multiplicació de matrius, pp.735–741.
Referències
[editar | editar còdic]
- Este artícul conté una traducció derivada de «Algoritmo de Strassen» de Wikipedia en castellà publicada baix la Llicència de documentació lliure de GNU i la Llicència Creative Commons Reconeiximent-CompartirIgual 4.0 Internacional.