Complessità spaziale dell'algoritmo Coppersmith – Winograd


24

L'algoritmo Coppersmith – Winograd è l'algoritmo asintoticamente più veloce noto per moltiplicare due matrici quadrate. Il tempo di esecuzione del loro algoritmo è che è il più noto finora. Qual è la complessità spaziale di questo algoritmo? È in ?n×nO(n2.376)Θ(n2)

Risposte:


30

Sì, tutti gli algoritmi che derivano dall'algoritmo originale di Strassen (questo include gli algoritmi più noti per la moltiplicazione di matrici, ma non tutti - vedi i commenti) hanno complessità spaziale . Se potessi trovare un algoritmo temporale con complessità spaziale , questo sarebbe un grande progresso. Un'applicazione sarebbe un algoritmo time, space per il problema Subset-Sum.n3εΘ(n2)n3εpoly(logn)2(1ε)npoly(n)

Tuttavia ci sono alcuni ostacoli a tale risultato. Per alcuni modelli computazionali, esistono limiti inferiori abbastanza forti per il prodotto spazio-tempo della moltiplicazione di matrici. Riferimenti come Yesha e Abrahamson ti daranno maggiori informazioni.


Ciao Ryan, fantastico. Che dire degli algoritmi di teoria dei gruppi di Cohn-Umans [FOCS2003] e Cohn-Kleinberg-Szegedy-Umans [FOCS2005]?
Shiva Kintali,

1
Sì, anche quelli. La mia comprensione è che stanno facendo un tipo speciale di convoluzione (una FFT su un gruppo speciale), ma la convoluzione è su oggetti di dimensioni . Non sono noti algoritmi per piccoli spazi (con complessità temporale migliore dell'algoritmo ovvio) per le convoluzioni di vettori su interi e immagino che sia solo più difficile ottenere convoluzioni di piccolo spazio su questi gruppi. Θ(n2)
Ryan Williams,

Come si può avere spazio quando si impiega spazio per memorizzare le voci delle matrici? poly(logn)2n2
T ....

Perché nel solito modo in cui viene misurata la complessità dello spazio, l'input non viene conteggiato per il limite dello spazio. L'input viene trattato come "sola lettura" e misuriamo quanta memoria aggiuntiva di "lettura / scrittura" è necessaria per calcolare la funzione. In questo caso, è sufficiente solo spazio aggiuntivo quando le voci di input sono limitate (ad es. 0 o 1) e si utilizzano le operazioni . O(logn)O(n3)
Ryan Williams,

1
Non so che cosa tu abbia in mente, ma ci sono sicuramente alg "combinatori" (ricerca di tabelle) per la matrice booleana mult che battono n ^ 3 volte per fattori di log e usano molto meno di n ^ 2 spazio ...
Ryan Williams,
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.