La complessità computazionale della moltiplicazione di matrici


14

Sto cercando informazioni sulla complessità computazionale della moltiplicazione di matrici di matrici rettangolari. Wikipedia afferma che la complessità della moltiplicazione di UNRm×n per è (moltiplicazione del libro di scuola).BRn×pO(mnp)

Ho un caso in cui e sono molto più piccola di , e speravo di ottenere una migliore complessità che lineare in , sulla spesa per lavorare la dipendenza da e peggio lineare.mnppmn

Qualche idea?

Grazie.

Nota: il motivo per cui spero che sia possibile è dovuto al risultato ben noto di una dipendenza inferiore a cubica in se (quando le matrici sono tutte quadrate).pm=n=p


8
La complessità di un algoritmo (sequenziale) non può essere inferiore alla dimensione del suo output. Per il tuo problema puoi rappresentare l'input e l'output usando lo spazio che è sublineare in p?
Colin McQuillan,

gli elementi sono per lo più diversi da zero o spesso zero? cioè rado? ciò porta sicuramente a varie ottimizzazioni. inoltre, sembra che la SVD [decomposizione del valore singolare] potrebbe essere rilevante in base alla risposta corrente riferita alle approssimazioni.
vzn

Risposte:


13

Il lavoro classico di Coppersmith mostra che per alcuni , si può moltiplicare una matrice n × n α con una matrice n α × n nelle operazioni aritmetiche ˜ O ( n 2 ) . Questo è un ingrediente cruciale del recente celebre risultato di Ryan Williams.α>0n×nαnα×nO~(n2)

Di recente François le Gall ha migliorato il lavoro di Coppersmith e il suo articolo è stato appena accettato da FOCS 2012. Per comprendere questo lavoro, avrai bisogno di alcune conoscenze sulla teoria della complessità algebrica. L'articolo di Virginia Williams contiene alcuni suggerimenti rilevanti. In particolare, il lavoro di Coppersmith è completamente descritto nella teoria della complessità algebrica , il libro.

Un diverso filone di lavoro si concentra sulla moltiplicazione di matrici approssimativamente . Puoi controllare quest'opera di Magen e Zouzias. Ciò è utile per gestire matrici molto grandi, diciamo moltiplicando una matrice e una matrice N × n , dove N n .n×NN×nN»n

L'approccio di base è campionare le matrici (ciò corrisponde a una riduzione di dimensionalità randomizzata) e moltiplicare le matrici campionate molto più piccole. Il trucco è scoprire quando e in che senso ciò fornisce una buona approssimazione. Contrariamente al precedente filone di lavoro che è completamente impraticabile, gli algoritmi di campionamento sono pratici e persino necessari per gestire grandi quantità di dati.


Solo una nota: è noto (a novembre 2010) che la moltiplicazione della matrice rettangolare non è necessaria per risolvere ACC SAT. (Il che è positivo, perché la matrice rettangolare mult è "galattica" e complessa.)
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.