Determinante de uma matriz generalizada de Vandermonde


10

A matriz de Moore é semelhante à matriz de Vandermonde, mas possui uma definição ligeiramente modificada. http://en.wikipedia.org/wiki/Moore_matrix

Qual é a complexidade de calcular o determinante de um dado módulo n da matriz de Moore n×n com algum número inteiro?

O determinante de Moore pode ser reduzido de O(n3) usando técnicas de FFT para O(nloga⁡n) para alguns a∈R+∪{0} ?

A complexidade de Moore det modulo é um número inteiro e Vandermonde det o mesmo? A complexidade do determinante de Vandermonde é O(nlog2⁡n) (Página 644 do Manual de Ciência da Computação Teórica: Algoritmos e Complexidade Por Jan Leeuwen)

Postagem semelhante à atual: módulo determinante m


O determinante de Moore pode mesmo ser calculado no tempo O (n ^ 3) (em uma RAM inteira)?
— Jeffε

11
@ Jɛ ff E É por isso que eu mencionei modulo aleatório N∈N .
— T ....

A propósito, e estou curioso, existem aplicativos conhecidos que se beneficiariam desse algoritmo "super-rápido"?
— Juan Bermejo Vega

@J FFE, por acaso você sabe se computar uma exponenciação modular dobro sobre N está em BPP para trivial N ?. Porque isso é um problema para calcular os coeficientes da matriz. εNN
— Juan Bermejo Vega

Respostas:


4

Em geral, existe um algoritmo de tempo teórico para encontrar a decomposição da LU de uma matriz arbitrária usando o algoritmo Coppersmith – Winograd , que obviamente produz o determinante (adicionando tempo O ( n ) ). Existe um problema, no entanto, que o algoritmo Coppersmith – Winograd não é considerado utilizável na prática. Afaik, as pessoas usam principalmente o algoritmo Strassen de tempo O ( n 2.807 ) . O lu_factorize do Boost UBLAS não usa isso?O(n2.376)O(n)O(n2.807)

No seu caso, a matriz de Moore deve admitir otimizações consideráveis, porque basicamente qualquer procedimento de eliminação gaussiano como a decomposição da LU pode ser feito abstratamente. De fato, você encontrará uma boa fórmula para calcular o determinante de Moore referenciado pela wikipedia , o que presumivelmente se prova simplesmente calculando a decomposição da LU em geral.O(n)


Oi Jeff: Qual referência você está referenciando para a fórmula O (n ^ 2). Penso que Vandermonde det pode ser calculado em O (nlogn), mas não consigo encontrar referência. Então Moore det também deveria estar em O (nlogn)?
— T ....

Sim, eu deveria ter dito O (n) obviamente, realmente O (n log n) para n grande.
— precisa saber é o seguinte

Oi Jeff: Você tem uma referência?
— T ....

7
@JeffBurdges: se o tempo de execução é O (n log n) "para n grande", então, por definição, o tempo de execução é O (n log n), não O (n).
— Jeffε

O(n)Θ(n2)

3

ZmmaqemodmO(log⁡(mn)M(log⁡m))

aqi≡aqi(modφ(m))(modm)
m

Se for primo ou puder ser fatorado com eficiência, a pior complexidade é dominada pelo número de etapas necessárias para a multiplicação de matrizes . Por exemplo, a abordagem de forma normal de Smith que mencionei no post do parceiro calcularia o determinante no tempo se você usar "slow" algoritmos de multiplicação . pode ser escolhido como 2.373.mO(nω)O(nωlog2⁡mlog⁡(mn))∗ω

Você tem uma desaceleração em Moore vs Vandermonde, pois é necessário exponenciar duas vezes os coeficientes da matriz. Quando você pode fatorar essa desaceleração é polilogarítmica em . Caso contrário, o algoritmo apresentado fornece uma redução de Cook para Exponenciação Modular Dupla em .mmZm

Nota *: algoritmos mais rápidos para multiplicação de números inteiros permitem substituir por .log2⁡mM(log⁡mlog⁡log⁡m)


Atualização : sobre a possibilidade de obter .O(nloga⁡n)

Não tenho uma resposta definitiva para isso, mas encontrei algumas informações que podem restringir sua pesquisa.

Algoritmos para matrizes estruturadas que calculam quantidades como determinantes no tempo são chamados "super-rápidos" na literatura. Todos os algoritmos "super-rápidos" conhecidos para matrizes estruturadas (Vandermonde, Toeplitz, Hankel) parecem confiar em uma propriedade comum dessas matrizes conhecida como "classificação de deslocamento" baixa. Consulte a discussão no primeiro capítulo deste livro (páginas de acesso aberto) ou neste artigo [ACM] , [PDF] .O(nloga⁡n)

Pelo que li, dado um Moore matriz , se você fosse capaz de encontrar matrizes , tal que a nova matriz (ou, alternativamente, ) tem a seguinte estruturam×nMABL(M)=AM−MBL(M)=M−AMB

L(M)=∑k=1rgkhkT

e a classificação é pequena (constante ou delimitada por ), então você pode aplicar técnicas existentes (consulte o capítulo 5 do livro, abra acessar páginas) para triangularizar e, portanto, calcular , usando . Acima, , denotam vetores. Se você não encontrar o livro acima para ler a coisa toda, este artigo também possui muitas informações sobre esses métodos.r>0o(min{m,n})MdetMO(nlog2⁡n)gkhk

Infelizmente, não consegui encontrar uma estrutura de baixo deslocamento para a matriz de Moore (Vandermonde). A principal complicação aqui parece surgir da natureza "não linear" da dupla exponencial. Se ajudar, os casos de Vandermonde, Cauchy, Toeplitz e Hankel são elaborados no livro.


Eu posso fazer minha matriz viver em um campo de caractere . No entanto, o tamanho dos alfabetos para o meu aplicativo pretendido será grande. Então tem a forma para um suficientemente grande . 3m3kk
— T ....

Isso é bom, desde que você pode calcular a função totient de :)3k
— Juan Bermejo Vega

bem, isso não simplifica a complexidade, eu diria que o campo é muito, muito grande.
— T ....

Simplifica os problemas mencionados com a dupla exponenciação. Como , você pode usar o teorema de Euler para exponenciar duas vezes : primeiro, calcule , então . Você pode fazer isso no tempo . Usando o algoritmo de multiplicação de escolas, , e você obteria um custo final "netto" de o que é eficiente. φ(3k)=3k−3k−1aqimodmb=qimodφ(3k)abmod3kO(log⁡(n3k)M(klog⁡3))M(n)=n2O(nωk2log23(log⁡n+klog⁡3))
— Juan Bermejo Vega

Podemos substituir por ? Essa é a redução de custos em que estou curioso (pode ser possível na estrutura da matriz). Com , não ganho nada para o meu propósito. ω1+ϵω≥2
— T ....
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.