Determinante einer verallgemeinerten Vandermonde-Matrix

10

Die Moore-Matrix ähnelt der Vandermonde-Matrix, hat jedoch eine leicht modifizierte Definition. http://en.wikipedia.org/wiki/Moore_matrix

Was ist die Komplexität der Berechnung der Determinante einer gegebenen vollen Rang-Moore-Matrix modulo einer ganzen Zahl?n×n

Kann die Moore-Determinante mit FFT-Techniken von auf für einige reduziert werden? ?O ( n log a n ) a R +{ 0 }O(n3)O(nlogan)aR+{0}

Ist die Komplexität von Moore det modulo eine ganze Zahl und Vandermonde det gleich? Die Komplexität der Vandermonde-Determinante ist (Seite 644 im Handbuch der Theoretischen Informatik: Algorithmen und Komplexität Von Jan Leeuwen)O(nlog2n)

Beitrag ähnlich dem aktuellen: Determinant modulo m

T ....
quelle
Kann die Moore-Determinante sogar in O (n ^ 3) -Zeit (auf einem ganzzahligen RAM) berechnet werden?
Jeffs
1
@ Jɛ ff E Deshalb habe ich modulo random . NN
T ....
Übrigens, und ich bin nur neugierig, gibt es bekannte Anwendungen, die von einem solchen "superschnellen" Algorithmus profitieren würden?
Juan Bermejo Vega
@J ffE, wissen Sie zufällig, ob die Berechnung einer doppelten modularen Exponentiation über in BPP für triviales ? Weil es ein Problem ist, die Koeffizienten der Matrix zu berechnen. N N.εNN
Juan Bermejo Vega

Antworten:

4

Im Allgemeinen gibt es einen theoretischen Zeitalgorithmus zum der LU-Zerlegung einer beliebigen Matrix unter Verwendung des Coppersmith-Winograd-Algorithmus , der dann offensichtlich die Determinante ergibt (Hinzufügen der -Zeit). Es gibt jedoch ein Problem, dass der Coppersmith-Winograd-Algorithmus in der Praxis nicht als verwendbar angesehen wird. Afaik, die Leute benutzen meistens den Zeit-Strassen-Algorithmus. Verwendet Boost UBLASs lu_factorize dies nicht?O ( n ) O ( n 2,807 )O(n2.376)O(n)O(n2.807)

In Ihrem Fall sollte die Moore-Matrix erhebliche Optimierungen zulassen, da grundsätzlich jede Gaußsche Eliminierungsprozedur wie die LU-Zerlegung abstrakt durchgeführt werden kann. In der Tat finden Sie eine nette -Formel zur Berechnung der Moore-Determinante , auf die in Wikipedia verwiesen wird. Dies beweist man vermutlich, indem man einfach die LU-Zerlegung im Allgemeinen berechnet .O(n)

Jeff Burdges
quelle
Hallo Jeff, auf welche Referenz beziehen Sie sich für die O (n ^ 2) -Formel? Ich denke, Vandermonde det kann in O (nlogn) berechnet werden, aber ich kann keine Referenz finden. Sollte Moore det also auch in O (nlogn) sein?
T ....
Ja, ich hätte offensichtlich O (n) sagen sollen, wirklich O (n log n) für großes n.
Jeff Burdges
Hallo Jeff: Hast du eine Referenz?
T ....
7
@ JeffBurdges: Wenn die Laufzeit O (n log n) "für großes n" ist, dann ist die Laufzeit per Definition O (n log n), nicht O (n).
Jeffs
Ich sehe keine -Formel, auf die Wikipedia verweist. Bestenfalls sieht es aus wie . Θ ( n 2 )O(n)Θ(n2)
Peter Taylor
3

Es ist wichtig, dass in der von Ihnen angegebenen Definition die Matrix in einem endlichen Feld lebt, z. B. wobei eine Primzahl ist. Auf diese Weise können Sie den Satz von Euler verwenden , um die Doppelexponentiale zu berechnen , die in der Matrix in der Zeit . Andernfalls scheint es schwierig zu sein, die Matrixkoeffizienten zu berechnen, ohne zu faktorisieren . mZmmaqemodmO(log(mn)M(logm))

aqiaqi(modφ(m))(modm)
m

Wenn eine Primzahl ist oder effizient faktorisiert werden kann, wird die Komplexität im ungünstigsten Fall von der Anzahl der Schritte dominiert, die Sie für die Matrixmultiplikation benötigen . Zum Beispiel würde der Smith-Normalform-Ansatz, den ich im Partnerbeitrag erwähnt habe, die Determinante in der Zeit berechnen, wenn Sie "slow" verwenden. Multiplikationsalgorithmen . kann als 2.373 gewählt werden.mO(nω)O(nωlog2mlog(mn))ω

In Moore gegen Vandermonde kommt es zu einer Verlangsamung, da Sie die Koeffizienten der Matrix doppelt potenzieren müssen. Wenn Sie faktorisieren können, ist diese Verlangsamung auf nur polylogarithmisch . Wenn nicht, erhalten Sie mit dem vorgestellten Algorithmus eine Cook-Reduktion auf Double-Modular-Exponentiation für .mmZm

Hinweis *: Mit schnelleren Algorithmen für die Ganzzahlmultiplikation können Sie durch ersetzen .log2mM(logmloglogm)


Update : über die Möglichkeit, .O(nlogan)

Ich habe keine eindeutige Antwort darauf, aber ich habe einige Informationen gefunden, die Ihre Suche möglicherweise verschärfen.

Algorithmen für strukturierte Matrizen, die Größen wie Determinanten in der Zeit berechnen, werden in der Literatur als "superschnell" bezeichnet. Alle bekannten "superschnellen" Algorithmen für strukturierte Matrizen (Vandermonde, Toeplitz, Hankel) scheinen auf einer gemeinsamen Eigenschaft dieser Matrizen zu beruhen, die als niedriger "Verschiebungsrang" bekannt ist. Konferenz über das erste Kapitel dieses Buches (Open-Access-Seiten) oder in diesem Artikel [ACM] , [PDF] .O(nlogan)

Nach dem, was ich gelesen habe, bei gegebener Moore-Matrix , wenn Sie die Matrizen , so finden konnten, dass die neue Matrix (oder alternativ ) hat die folgende Strukturm×nMABL(M)=AMMBL(M)=MAMB

L(M)=k=1rgkhkT

Wenn der Rang klein ist (entweder konstant oder durch begrenzt ), können Sie vorhandene Techniken anwenden (siehe Kapitel 5 des Buches, open- Zugriffsseiten), um zu triangulieren und daher mit berechnen . Oben bezeichnen die , Vektoren. Wenn Sie das obige Buch nicht finden, um das Ganze zu lesen, enthält dieser Artikel auch viele Informationen zu diesen Methoden.r>0o(min{m,n})MdetMO(nlog2n)gkhk

Leider konnte ich keine Struktur mit niedrigem Verschiebungsrang für die Moore-Matrix finden (Vandermonde hat). Die Hauptkomplikation scheint sich hier aus der "nichtlinearen" Natur des Doppelexponentials zu ergeben. Wenn es hilft, werden die Fälle für Vandermonde, Cauchy, Toeplitz, Hankel in dem Buch herausgearbeitet.

Juan Bermejo Vega
quelle
Ich kann meine Matrix in einem Feld von char . Die Größe der Alphabete für meine beabsichtigte Anwendung ist jedoch groß. So ist von Form für einige groß genug . 3m3kk
T ....
Das ist in Ordnung, da Sie die Totientenfunktion von berechnen können :)3k
Juan Bermejo Vega
Nun, das vereinfacht die Komplexität nicht, würde ich sagen, da das Feld sehr sehr groß ist.
T ....
Dies vereinfacht die Probleme, die ich bei der Doppelexponentiation erwähne. Da , können Sie den Satz von Euler verwenden, um doppelt zu : Berechnen Sie zuerst , dann . Sie können dies in der Zeit . Unter Verwendung des Schulmultiplikationsalgorithmus ist , und Sie würden endgültige "Netto" -Kosten von das ist effizient. φ(3k)=3k3k1aqimodmb=qimodφ(3k)abmod3kO(log(n3k)M(klog3))M(n)=n2O(nωk2log23(logn+klog3))
Juan Bermejo Vega
Können wir durch ersetzen ? Das ist die Kostenersparnis, auf die ich neugierig bin (möglicherweise aufgrund der Matrixstruktur möglich). Mit ich nichts für meinen Zweck. ω1+ϵω2
T ....