Determinant uogólnionej macierzy Vandermonde'a

10

Macierz Moore'a jest podobna do macierzy Vandermonde, ale ma nieco zmodyfikowaną definicję. http://en.wikipedia.org/wiki/Moore_matrix

Jaka jest złożoność obliczenia wyznacznika danego pełnego rzędu macierzy Moore'a modulo jakiejś liczby całkowitej?n×n

Czy wyznacznik Moore'a można zredukować z przy użyciu technik FFT do dla niektórych ?O ( n log a n ) a R +{ 0 }O(n3)O(nlogan)aR+{0}

Czy złożoność Moore det modulo jest liczbą całkowitą, a Vandermonde jest taka sama? Złożoność wyznacznika Vandermonde'a to (Strona 644 w Handbook of Theoretical Computer Science: Algorytmy i złożoność Jan Leeuwen)O(nlog2n)

Post podobny do bieżącego: Determinant modulo m

T ....
źródło
Czy wyznacznik Moore'a można nawet obliczyć w czasie O (n ^ 3) (na całkowitej liczbie RAM)?
Jeffε
1
@ Jɛ ff E Dlatego wspomniałem modulo losowa . NN
T ....
Nawiasem mówiąc, jestem ciekawy, czy istnieją znane aplikacje, które mogłyby skorzystać z takiego „superszybkiego” algorytmu?
Juan Bermejo Vega
@J ffE, czy wiesz, czy obliczenie podwójnego modularnego potęgowania przez N jest w BPP dla trywialnego N ? Ponieważ jest to problem przy obliczaniu współczynników macierzy. εNN
Juan Bermejo Vega

Odpowiedzi:

4

Ogólnie rzecz biorąc, istnieje teoretyczny algorytm czasowy do znajdowania dekompozycji LU dowolnej macierzy przy użyciu algorytmu Coppersmitha-Winograda , który następnie oczywiście wyznacza wyznacznik (dodając czas O ( n ) ). Istnieje jednak problem polegający na tym, że algorytm Coppersmith – Winograd nie jest uważany za przydatny w praktyce. Afaik, ludzie najczęściej używają algorytmu Strassena czasu O ( n 2.807 ) . Czy Bo_Factorize nie wykorzystuje Boost w UBLAS ?O(n2.376)O(n)O(n2.807)

W twoim przypadku macierz Moore'a powinna pozwolić na znaczną optymalizację, ponieważ w zasadzie każda procedura eliminacji Gaussa, taka jak rozkład LU, może być przeprowadzona abstrakcyjnie. Rzeczywiście, znajdziesz fajną formułę do obliczania wyznacznika Moore'a , do którego odwołuje się wikipedia , co prawdopodobnie można udowodnić, po prostu opracowując rozkład LU w ogóle.O(n)

Jeff Burdges
źródło
Cześć Jeff: Które referencje odwołujesz się do formuły O (n ^ 2). Myślę, że Vandermonde det można obliczyć w O (nlogn), ale nie mogę znaleźć odniesienia. Więc czy Moore powinien również znajdować się w O (nlogn)?
T ....
Tak, powinienem był powiedzieć O (n) oczywiście, naprawdę O (n log n) dla dużego n.
Jeff Burdges
Cześć Jeff: Czy masz referencje?
T ....
7
@JeffBurdges: Jeśli czas działania wynosi O (n log n) „dla dużego n”, to z definicji czas działania to O (n log n), a nie O (n).
Jeffε
Nie widzę formuły odwołuje się Wikipedia. W najlepszym razie wygląda Θ ( n 2 ) . O(n)Θ(n2)
Peter Taylor,
3

Ważne jest, aby w podanej definicji macierz żyła w polu skończonym, powiedzmy gdzie m jest liczbą pierwszą. Pozwala to użyć twierdzenia Eulera do obliczenia podwójnych wykładniczych a q eZmm które pojawiają się w macierzy w czasie O ( log ( m n )aqemodm . a q ia q iO(log(mn)M(logm)) W przeciwnym razie wydaje się trudne nawet obliczenie współczynników macierzy bez faktoryzacji m .

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

Jeśli jest liczbą pierwszą lub można je efektywnie rozłożyć na czynniki, w najgorszym przypadku złożoność jest zdominowana przez liczbę kroków potrzebnych do mnożenia macierzy O ( n ω ) . Na przykład podejście normalnej formy Smitha , o którym wspomniałem w poście partnerskim , obliczałoby wyznacznik w czasie O ( n ωmO(nω) jeśli używasz „powolnych” algorytmów mnożenia . ω można wybrać jako 2,373.O(nωlog2mlog(mn))ω

Dostajesz spowolnienie w Moore vs Vandermonde ponieważ należy podwoić-exponentiate współczynniki macierzy. Kiedy można wyliczyć to spowolnienie jest po prostu polilogarytmiczne na m . Jeśli nie, przedstawiony algorytm daje redukcję Cooka do potęgowania podwójnego modułowego na Z m .mmZm

Uwaga *: szybsze algorytmy mnożenia liczb całkowitych pozwalają zastąpić z M ( log m log log m ) .log2)mM.(logmloglogm)


Aktualizacja : w sprawie możliwości osiągnięcia .O(nlogzan)

Nie mam na to jednoznacznej odpowiedzi, ale znalazłem informacje, które mogą przyspieszyć wyszukiwanie.

Algorytmy dla strukturalnych macierzy, które obliczają wielkości takie jak wyznaczniki w czasie są w literaturze nazywane „superszybkimi”. Wszystkie znane „superszybkie” algorytmy dla matryc strukturalnych (Vandermonde, Toeplitz, Hankel) wydają się polegać na wspólnej właściwości tych matryc, znanej jako „niski stopień przemieszczenia”. Przeprowadź dyskusję na temat pierwszego rozdziału tej książki (strony z otwartym dostępem) lub w tym artykule [ACM] , [PDF] .O(nlogzan)

Z tego, co przeczytałem, biorąc pod uwagę macierzy Moore'a M , gdybyś był w stanie znaleźć macierze A , B takie, że nowa macierz L ( M ) = A M - M B (lub alternatywnie L ( M ) = M - A M B ) ma następującą strukturęm×nM.ZAbL.(M.)=ZAM.-M.bL.(M.)=M.-ZAM.b

L.(M.)=k=1rsolkhkT.

, a ranga jest mała (stała lub ograniczona przez o ( minr>0 ), a następnie możesz zastosować istniejące techniki (sprawdź rozdział 5 książki, strony z otwartym dostępem) do trójkątnego M, a zatem obliczyć det M , używając O ( n log 2 n ) . Powyżej,,oznaczają wektory. Jeśli nie możesz znaleźć powyższej książki, aby przeczytać całość,ten artykułzawiera również wiele informacji na temat tych metod.o(min{m,n})M.detM.O(nlog2)n)h ksolkhk

Niestety, nie byłem w stanie znaleźć struktury o niskim stopniu przesunięcia dla matrycy Moore'a (ma Vandermonde). Wydaje się, że główna komplikacja wynika z „nieliniowej” natury podwójnego wykładniczego. Jeśli to pomoże, sprawy dotyczące Vandermonde, Cauchy, Toeplitz, Hankel zostały opracowane w książce.

Juan Bermejo Vega
źródło
3)m3)kk
3)k
to nie upraszcza złożoności, powiedziałbym, ponieważ pole jest bardzo bardzo duże.
T ....
φ(3)k)=3)k-3)k-1zaqjamodmb=qjamodφ(3)k)zabmod3)kO(log(n3)k)M.(klog3)))M.(n)=n2)O(nωk2)losol2)3)(logn+klog3)))
ω1+ϵω2)