ZmmaqemodmO(log(mn)M(logm))
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ωlog2mlog(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 .log2mM(logmloglogm)
Atualização : sobre a possibilidade de obter .O(nlogan)
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(nlogan)
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=1rgkhTk
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(nlog2n)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.