A complexidade computacional da multiplicação de matrizes


14

Estou procurando informações sobre a complexidade computacional da multiplicação de matrizes de matrizes retangulares. A Wikipedia afirma que a complexidade de multiplicar por é (multiplicação de livros escolares). B R n × p O ( m n p )ARm×nBRn×pO(mnp)

Eu tenho um caso em que e são muito menores que , e esperava obter uma complexidade melhor que linear em , à custa de tornar a dependência de e pior que linear.n p p m nmnppmn

Alguma ideia?

Obrigado.

Nota: a razão pela qual espero que seja possível é por causa do resultado bem conhecido de uma dependência menor que cúbica em se (quando as matrizes são todas quadradas).m = n = ppm=n=p


8
A complexidade de um algoritmo (seqüencial) não pode ser menor que o tamanho de sua saída. Para o seu problema, você pode representar a entrada e a saída usando o espaço sublinear em p?
Colin McQuillan

os elementos são na maioria diferentes de zero ou geralmente zero? ou seja, escasso? isso certamente leva a várias otimizações. também parece que a SVD [decomposição do valor singular] pode ser relevante com base na resposta atual referente a aproximações.
vzn

Respostas:


13

O trabalho clássico de Coppersmith mostra que, para alguns , pode-se multiplicar uma matriz n × n α por uma matriz n α × n em operações aritméticas ˜ O ( n 2 ) . Este é um ingrediente crucial do recente resultado comemorado de Ryan Williams.α>0 0n×nαnα×nO~(n2)

François le Gall melhorou recentemente o trabalho de Coppersmith, e seu artigo acaba de ser aceito no FOCS 2012. Para entender esse trabalho, você precisará de algum conhecimento da teoria da complexidade algébrica. O artigo de Virginia Williams contém alguns indicadores relevantes. Em particular, o trabalho de Coppersmith é completamente descrito em Algebraic Complexity Theory , o livro.

Uma linha diferente de trabalho concentra-se na multiplicação de matrizes aproximadamente . Você pode conferir este trabalho de Magen e Zouzias. Isso é útil para lidar com matrizes muito grandes, digamos, multiplicando uma matriz e uma matriz N × n , onde N n .n×NN×nNn

A abordagem básica é amostrar as matrizes (isso corresponde a uma redução de dimensionalidade aleatória) e multiplicar as matrizes amostradas muito menores. O truque é descobrir quando e em que sentido isso dá uma boa aproximação. Ao contrário do trabalho anterior, que é completamente impraticável, os algoritmos de amostragem são práticos e até necessários para manipular grandes quantidades de dados.


Apenas uma observação: sabe-se (a partir de novembro de 2010) que a multiplicação de matriz retangular não é necessária para resolver o ACC SAT. (Que é bom, porque mult matriz retangular é "galáctico" e complexo.)
Ryan Williams
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.