Os sistemas lineares simétricos diagonais mais fixos podem ser resolvidos em tempo quadrático após a pré-computação?

21

Existe um método para resolver sistemas lineares da forma onde é uma matriz SPD fixa e são matrizes diagonais positivas?O(n3+n2k)k(Di+A)xi=biADi

Por exemplo, se cada é escalar, basta calcular o SVD Uma . No entanto, isso se divide em D geral devido à falta de comutatividade.DiAD

Atualização : As respostas até agora são "não". Alguém tem alguma intuição interessante sobre o porquê? Uma resposta sem resposta significa que não há uma maneira não trivial de compactar as informações entre dois operadores não comutadores. Não é muito surpreendente, mas seria ótimo entendê-lo melhor.

Geoffrey Irving
fonte
SPD = definido semi-positivo?
rcollyer
Sim, embora o problema seja essencialmente o mesmo sem o SPD. Eu adicionei essa restrição apenas para garantir que os sistemas nunca sejam singulares.
Geoffrey Irving

Respostas:

19

As respostas positivas mais próximas à sua pergunta que eu pude encontrar são as perturbações diagonais esparsas (veja abaixo).

Com isso dito, não conheço nenhum algoritmo para o caso geral, embora exista uma generalização da técnica mencionada para as mudanças escalares das matrizes SPD para todas as matrizes quadradas:

Dada qualquer matriz quadrada , existe uma decomposição de Schur A = U T U H , onde U é unitário e T é triangular superior, e A + σ I = U ( T + σ I ) U H fornece uma decomposição de Schur de A + σ eu . Assim, sua ideia de pré-computação se estende a todas as matrizes quadradas através do algoritmo:AA=UTUHUTA+σI=U(T+σI)UHA+σI

  • Calcular , em, no máximo, O ( n 3 ) de trabalho.[U,T]=schur(A)O(n3)
  • Resolva cada via x : = U ( T + σ I ) - 1 U H b em O ( n 2 ) trabalho (a inversão do meio é simplesmente a substituição de volta).(A+σI)x=bx:=U(T+σI)1UHbO(n2)

Essa linha de raciocínio se reduz à abordagem que você mencionou quando é SPD, pois a decomposição de Schur se reduz a um EVD para matrizes normais, e o EVD coincide com o SVD para matrizes definidas positivas de Hermitian.A

Resposta à atualização: Até que eu tenha uma prova, o que não tenho, recuso-me a afirmar que a resposta é "não". No entanto, posso dar algumas idéias sobre por que é difícil, bem como outro subcaso em que a resposta é sim.

A dificuldade essencial é que, mesmo que a atualização seja diagonal, ela ainda esteja em geral na classificação completa; portanto, a principal ferramenta para atualizar um inverso, a fórmula de Sherman-Morrison-Woodbury , não parece ajudar. Embora o caso de mudança escalar também seja de classificação completa, é um caso extremamente especial, pois se alterna com todas as matrizes, como você mencionou.

Com isso dito, se cada era escasso, ou seja, cada um deles tinha O ( 1 ) nonzeros, a fórmula de Sherman-Morrison-Woodbury produz uma solução de O ( n 2 ) com cada par { D , b } . Por exemplo, com um único diferente de zero na j- ésima entrada diagonal, de modo que D = δ e j e H j :DO(1)O(n2){D,b}jD=δejejH

[A1+δejejH]1=A1δA1ejejHA11+δ(ejHA1ej),

onde é o j- ésimo vetor de base padrão .ejj

Outra atualização: devo mencionar que tentei o pré-condicionador que o @GeoffOxberry sugeriu em algumas matrizes SPD 1000 × 1000 aleatórias usando PCG e, talvez não surpreendentemente, pareça reduzir bastante o número de iterações quando | | D | | 2 / | | Um | | 2 é pequeno, mas não quando é O ( 1 ) ou superior.A11000×1000||D||2/||A||2O(1)

Jack Poulson
fonte
12

Se é dominante em diagonal para cada i , então recente trabalho de Koutis, Miller e Peng (ver website Koutis' para o trabalho em matrizes diagonalmente dominantes simétricas) poderia ser usada para resolver cada sistema em O ( n 2 log ( n ) ) time (atualmente O ( m log ( n ) ) time, em que m é o número máximo de entradas diferentes de zero em ( D i + A ) em todos os(Di+A)iO(n2log(n))O(mlog(n))m(Di+A) , para que você também possa aproveitar a escarsidade). Então, o tempo total de execução seria O ( n 2 log ( n ) k ) , que é melhor do que aabordagem O ( n 3 k ) de resolver cada sistema ingenuamente usando álgebra linear densa, mas um pouco pior que o tempo de execução quadrático que você está pedindo.iO(n2log(n)k)O(n3k)

Sparsity significativa em para todos i poderia ser explorada por solucionadores esparsas para produzir uma O ( n 2 k ) algoritmo, mas eu estou supondo que se você tivesse dispersão significativa, então você teria mencionado.(Di+A)iO(n2k)

Você também pode usar como pré-condicionador para resolver cada sistema usando métodos iterativos e ver como isso funciona.A1

Resposta à atualização : @JackPaulson faz um excelente ponto de vista da álgebra linear numérica e algoritmos. Vou me concentrar em argumentos de complexidade computacional.

A complexidade computacional da solução de sistemas lineares e a complexidade computacional da multiplicação de matrizes são essencialmente iguais. (Consulte Teoria da complexidade algébrica .) Se você pudesse encontrar um algoritmo que comprima as informações entre dois operadores não pendulares (ignorando a parte semidefinida positiva) e resolva diretamente a coleção de sistemas que você está propondo no tempo quadrático em , então é É provável que você possa usar esse algoritmo para fazer inferências sobre a multiplicação mais rápida da matriz. É difícil ver como a estrutura semidefinida positiva pode ser usada em um método denso e direto para sistemas lineares diminuirem sua complexidade computacional.n

Como @JackPaulson, não estou disposto a dizer que a resposta é "não" sem uma prova, mas, dadas as conexões acima, o problema é muito difícil e tem interesse de pesquisa atual. O melhor que você pode fazer do ponto de vista assintótico sem alavancar a estrutura especial é uma melhoria no algoritmo Coppersmith e Winograd, produzindo um algoritmo , em que α 2.375 . Esse algoritmo seria difícil de codificar e provavelmente seria lento para matrizes pequenas, porque o fator constante que precede a estimativa assintótica é provavelmente enorme em relação à eliminação gaussiana.O(nαk)α2.375

Geoff Oxberry
fonte
3
Ainda estou para ver uma declaração concreta de onde o crossover pode estar, mas várias fontes respeitáveis ​​afirmaram que (problemas de implementação à parte), a Coppersmith-Winograd não consegue vencer métodos padrão para tamanhos de matriz que poderão caber na memória em um futuro próximo (algumas décadas). Dado que o benchmark Linpack leva mais de um dia para ser executado nas principais máquinas atuais, não parece provável que o Coppersmith-Winograd seja usado na prática. Strassen é realmente prático para grandes problemas, embora seja um pouco menos estável numérico.
precisa
Isso não me surpreende. +1 para os detalhes da implementação.
precisa
6

Uma expansão de Taylor de primeira ordem pode ser usada para melhorar a convergência sobre atrasos simples. Suponha que temos um pré-condicionador (ou fatores para a direta resolver) disponível para , e queremos usá-lo para pré-condicionamento A . Nós podemos calcularA+DA

A1=(A+DD)1(A+D)(A+D)1=[(A+D)1(A+DD)]1(A+D)1=[I(A+D)1D]1(A+D)1[I+(A+D)1D](A+D)1

onde a expansão de Taylor foi usada para escrever a última linha. A aplicação deste aparelho precondicionador requer dois resolve com .A+D

Funciona razoavelmente bem quando o pré-condicionador é desviado de 0 por uma quantidade semelhante ou maior do que o operador com o qual estamos tentando resolver (por exemplo, ). Se a mudança no pré-condicionador for menor ( D min σ ( A ) ), o operador pré-condicionado se tornará indefinido.D0Dminσ(A)

Se a mudança no pré-condicionador for muito maior do que no operador, esse método tende a produzir um número de condição cerca da metade do pré-condicionamento pelo operador atrasado (nos testes aleatórios que eu executei, poderia ser melhor ou pior para uma classe específica de matrizes). Esse fator de 2 no número da condição fornece um fator de na contagem de iterações. Se o custo da iteração for dominado pelas soluções comA+D, isso não é um fator suficiente para justificar a expansão de Taylor de primeira ordem. Se a aplicação da matriz for proporcionalmente cara (por exemplo, você só possui um pré-condicionador de aplicação de baixo custo paraA+D), esse método de primeira ordem pode fazer sentido.2A+DA+D

Jed Brown
fonte