La matrice de Moore est similaire à la matrice de Vandermonde mais a une définition légèrement modifiée. http://en.wikipedia.org/wiki/Moore_matrix
Quelle est la complexité du calcul du déterminant d'une matrice de Moore de rang complet modulo un entier?
Le déterminant de Moore peut-il être réduit de utilisant des techniques FFT à pour certains ?
La complexité de Moore det modulo est-elle un entier et Vandermonde dét la même chose? La complexité du déterminant de Vandermonde est (Page 644 dans le Manuel de l'informatique théorique: algorithmes et complexité par Jan Leeuwen)
Poste similaire à l'actuel: Module déterminant m
Réponses:
En général, il existe un algorithme théorique pour trouver la décomposition LU d'une matrice arbitraire en utilisant l' algorithme Coppersmith – Winograd , qui donne alors évidemment le déterminant (en ajoutant le temps ). Il y a cependant un problème que l'algorithme Coppersmith – Winograd n'est pas considéré comme utilisable dans la pratique. Afaik, les gens utilisent principalement l' algorithme Strassen à temps . Est-ce que Boost UBLAS lu_factorize ne l' utilise pas?O ( n ) O ( n 2,807 )O(n2.376) O(n) O(n2.807)
Dans votre cas, la matrice de Moore devrait admettre des optimisations considérables car, fondamentalement, toute procédure d'élimination gaussienne comme la décomposition LU peut être effectuée de manière abstraite. En effet, vous trouverez une belle formule pour calculer le déterminant de Moore référencé par wikipedia , ce que l'on prouve probablement en élaborant simplement la décomposition LU en général.O(n)
la source
Il est important que, dans la définition que vous fournissez, la matrice vive dans un champ fini, disons où est premier. Cela vous permet d'utiliser le théorème d' Euler pour calculer les doubles exponentielles qui apparaissent dans la matrice au temps . Sinon, il semble même difficile de calculer les coefficients de la matrice sans factoriser . mZm m aqemodm O(log(mn)M(logm))
Si est premier ou peut être factorisé efficacement, la complexité la plus défavorable est dominée par le nombre d'étapes dont vous avez besoin pour la multiplication matricielle . Par exemple, l' approche de la forme normale de Smith que j'ai mentionnée dans la publication partenaire calculerait le déterminant dans le temps si vous utilisez "slow" algorithmes de multiplication . peut être choisi pour 2.373.m O(nω) O(nωlog2mlog(mn)) ∗ ω
Vous obtenez un ralentissement dans Moore vs Vandermonde car vous devez double-exponentier les coefficients de la matrice. Lorsque vous pouvez factoriser ce ralentissement est simplement polylogarithmique sur . Sinon, l' algorithme présenté vous donne une réduction de Cook à Double-Modular-Exponentiation sur .m m Zm
Remarque *: des algorithmes plus rapides pour la multiplication d'entiers vous permettent de remplacer par .log2m M(logmloglogm)
Mise à jour : sur la possibilité de réaliser .O(nlogan)
Je n'ai pas de réponse définitive à cela, mais j'ai trouvé des informations qui pourraient resserrer votre recherche.
Les algorithmes pour les matrices structurées qui calculent des quantités comme des déterminants dans le temps sont appelés "ultra-rapides" dans la littérature. Tous les algorithmes "ultra-rapides" connus pour les matrices structurées (Vandermonde, Toeplitz, Hankel) semblent s'appuyer sur une propriété commune de ces matrices connue sous le nom de "rang de déplacement" bas. Conférer la discussion sur le premier chapitre de ce livre (pages en accès libre), ou dans cet article [ACM] , [PDF] .O(nlogan)
D'après ce que j'ai lu, étant donné une matrice Moore , si vous pouviez trouver des matrices , telles que la nouvelle matrice (ou alternativement ) a la structure suivantem×n M A B L(M)=AM−MB L(M)=M−AMB
, et le rang est petit (soit constant soit délimité par ), alors vous pouvez appliquer les techniques existantes (consultez le chapitre 5 du livre, ouvrez- pages d'accès) pour triangulariser et, par conséquent, calculer , en utilisant . Au-dessus, les , désignent des vecteurs. Si vous ne trouvez pas le livre ci-dessus pour lire le tout, cet article contient également de nombreuses informations sur ces méthodes.r>0 o(min{m,n}) M detM O(nlog2n) gk hk
Malheureusement, je n'ai pas été en mesure de trouver une structure de rang à faible déplacement pour la matrice de Moore (Vandermonde l'a). La principale complication semble ici venir de la nature "non linéaire" de la double exponentielle. Si cela aide, les cas de Vandermonde, Cauchy, Toeplitz, Hankel sont traités dans le livre.
la source