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(log⁡n)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.