Immagine più ampia dietro la scelta delle matrici nell'algoritmo Strassen


17

Nell'algoritmo Strassen, per calcolare il prodotto di due matrici e B , le matrici A e B sono divise in matrici a blocchi 2 × 2 e l'algoritmo procede calcolando ricorsivamente 7 prodotti matrice a matrice di blocchi rispetto a una matrice a 8 blocchi ingenua- prodotti matrice, ovvero se vogliamo C = A B , dove A = [ A 1 , 1 A 1 , 2 A 2 , 1 A 2 , 2UNBUNB2×278C=UNB quindi abbiamo C 1 , 1 = A 1 , 1 B 1 , 1 + A 1

UN=[UN1,1UN1,2UN2,1UN2,2] , B=[B1,1B1,2B2,1B2,2] , C=[C1,1C1,2C2,1C2,2]
che richiede8moltiplicazioni. Invece in Strassen, calcoliamo M 1 :=( A 1 , 1 + A 2 , 2 )( B 1 , 1 + B 2 , 2 )
C1,1=UN1,1B1,1+UN1,2B2,1C1,2=UN1,1B1,2+UN1,2B2,2C2,1=UN2,1B1,1+UN2,2B2,1C2,2=UN2,1B1,2+UN2,2B2,2
8 e ottenere C i , j usando M k come C 1 , 1 = M 1 + M 4 - M 5 + M 7
M1: =(UN1,1+UN2,2)(B1,1+B2,2)M2: =(UN2,1+UN2,2)B1,1M3: =UN1,1(B1,2-B2,2)M4: =UN2,2(B2,1-B1,1)M5: =(UN1,1+UN1,2)B2,2M6: =(UN2,1-UN1,1)(B1,1+B1,2)M7: =(UN1,2-UN2,2)(B2,1+B2,2)
Cio,jMK Tuttavia, la scelta delle matrici M k mi sembra arbitraria. Esiste un quadro più ampio del perché scegliamo questi prodotti specifici delle sottomatrici di A e B ? Inoltre, mi aspetto che M k coinvolga A i , j e B i , j in modo simmetrico, il che non sembra essere il caso qui. Ad esempio, abbiamo M 2 :=
C1,1=M1+M4-M5+M7C1,2=M3+M5C2,1=M2+M4C2,2=M1-M2+M3+M6
MKUNBMKUNio,jBio,j . Mi aspetto che anche la sua controparte dica che A 1 , 1 ( B 1 , 2 + B 2 , 2 ) verrà calcolato. Tuttavia, non lo è poiché può essere ottenuto da altri M k .M2: =(UN2,1+UN2,2)B1,1UN1,1(B1,2+B2,2)MK

Gradirei se qualcuno potesse far luce su questo.

Risposte:


15

2×22×2

2×2

Schönhage una volta mi disse che Strassen una volta gli aveva detto di aver trovato il suo algoritmo in questo modo, cercando di dimostrare un limite inferiore.


11

UN0,UN1,UN2,UN3B0,B1,B2,B32×2UNioBj{0,UN0,UN1,UN2,UN3,B0,B1,B2,B3}UN0=B0UNBUN0=B0,UN1,UN2,UN3,B1,B2,B3M

Non so se Strassen abbia escogitato questo modo di vederlo. Considerando le altre identità alla base degli algoritmi di moltiplicazione a matrice rapida, non è chiaro se ci sia qualcosa di profondo in corso, al di sotto di una formula che risolve. Ci siamo già passati prima - Lagrange ha usato l'identità dei quattro quadrati (che era stata conosciuta in precedenza) per dimostrare il teorema dei quattro quadrati. All'inizio deve essere stata solo una curiosa identità algebrica, ma ora sappiamo che afferma la proprietà di moltiplicazione della norma del quaternione. Dato lo stato attuale delle conoscenze, è difficile stabilire se l'interpretazione di cui sopra sia altrettanto produttiva.


3
2×2
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.