일반화 된 Vandermonde 행렬의 결정 요인


10

무어 매트릭스는 Vandermonde 매트릭스와 유사하지만 약간 수정 된 정의를 가지고 있습니다. http://en.wikipedia.org/wiki/Moore_matrix

주어진 n×n 풀 랭크 무어 매트릭스 모듈로의 정수를 결정하는 계산의 복잡성은 어떤 정수입니까?

캔 무어에서 감소 될 행렬식 O(n3) 에 FFT 기술을 이용하여 O(nlogan) 일부 R +{ 0 } ?aR+{0}

Moore det modulo의 복잡성은 정수이고 Vandermonde는 동일합니까? Vandermonde 결정 요인의 복잡도는 O(nlog2n) (이론적 컴퓨터 과학 핸드북 : 644 페이지의 Jan Leeuwen의 페이지 644).

현재 것과 유사한 포스트 : 결정 모듈로 m


Moore 결정자는 O (n ^ 3) 시간 (정수 RAM에서)으로 계산 될 수 있습니까?
Jeffε

1
@ Jɛ ff E 그렇기 때문에 모듈로 랜덤 언급했습니다 NN.
T ....

그건 그렇고, 궁금합니다. 그런 "초고속"알고리즘의 이점을 얻을 수있는 알려진 응용 프로그램이 있습니까?
Juan Bermejo Vega

@J FFE, 당신은 이상의 이중 모듈러 지수 계산 경우 아시나요 N 것은 사소한에 대한 BPP에 N ?. 행렬의 계수를 계산하는 데 문제가 있기 때문입니다. εNN
Juan Bermejo Vega

답변:


4

일반적으로, Coppersmith-Winograd 알고리즘을 사용하여 임의 행렬 의 LU 분해 를 찾는 이론적 시간 알고리즘 이 있으며 , 이로 인해 결정적 ( O ( n ) 시간 추가 )이 생성됩니다. 그러나 Coppersmith–Winograd 알고리즘이 실제로 사용 가능한 것으로 간주되지 않는 문제가 있습니다. Afaik 사람들은 대부분 O ( n 2.807 ) 시간 Strassen 알고리즘을 사용합니다. UBLAS의 lu_factorize가 이것을 사용하지 않습니까?O(n2.376)O(n)O(n2.807)

무어 매트릭스는 기본적으로 LU 분해와 같은 절차와 같은 가우시안 제거를 추상적으로 수행 할 수 있기 때문에 상당한 최적화를 인정해야합니다. 실제로, wikipedia 에서 참조 하는 Moore 결정자를 계산하기위한 멋진 공식을 찾을 수있을 것 입니다. 아마 LU 분해를 간단히 수행함으로써 증명할 수있을 것입니다.O(n)


Hi Jeff : O (n ^ 2) 공식에 대한 참조는 어느 것입니까? Vandermonde det는 O (nlogn)로 계산할 수 있지만 참조를 찾을 수 없다고 생각합니다. 무어도 O (nlogn)에 있어야합니까?
T ....

예, 분명히 O (n), 실제로 큰 n의 경우 O (n log n)라고 말해야합니다.
Jeff Burdges 2012 년

안녕 제프 : 당신은 참조가 있습니까?
T ..

7
@JeffBurdges : 실행 시간이 O (n log n) "큰 n"인 경우, 정의상 실행 시간은 O (n)이 아니라 O (n log n)입니다.
Jeffε

O(n)Θ(n2)

3

ZmmaqemodmO(log(mn)M(logm))

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

경우 소수 또는 효율적으로 인수 분해 될 수 있고, 최악의 복잡도 는 매트릭스 승산을 위해 필요한 단계의 수에 의해 지배된다 . 예를 들어, 파트너 게시물 에서 언급 한 Smith 정규 형식 접근 방식 은 "느린"을 사용하는 경우 시간에 결정자를 계산합니다 곱셈 알고리즘 . 는 2.373으로 선택할 수 있습니다.mO(nω)O(nωlog2mlog(mn))ω

행렬의 계수를 두 배로 늘려야하기 때문에 Moore vs Vandermonde 의 속도느려집니다 . 을 인수 분해 할 수있을 때이 감속은 에 대한 다항식입니다 . 그렇지 않은 경우 제시된 알고리즘은 Double-Modular-Exponentiation에 대한 Cook 축소 를 제공합니다 .mmZm

참고 * : 정수 곱셈에 대한 빠른 알고리즘을 사용하면 을 로 바꿀 수 있습니다 .log2mM(logmloglogm)


업데이트 : 달성 가능성에 대해 .O(nlogan)

이에 대한 명확한 답은 없지만 검색을 강화할 수있는 정보를 찾았습니다.

시간 에서 결정자와 같은 양을 계산 하는 구조화 된 행렬에 대한 알고리즘 은 문헌에서 "초고속"이라고합니다. 구조화 된 행렬 (Vandermonde, Toeplitz, Hankel)에 대해 알려진 모든 "초고속"알고리즘은 낮은 "변위 순위"로 알려진이 행렬의 공통 속성에 의존하는 것 같습니다. 이 의 첫 장 (오픈 액세스 페이지) 또는이 문서 [ACM] , [PDF] 에 대한 토론을 진행 하십시오 .O(nlogan)

내가 읽은 것에서, Moore matrix , 행렬 , 를 찾을 수 있다면 새로운 행렬 (또는 대안 적으로 ) 다음과 같은 구조를 가지고있다m×nMABL(M)=AMMBL(M)=MAMB

L(M)=k=1rgkhkT

의 순위 가 작고 (상수 또는 기존 기술을 적용 할 수 있습니다 (책 5 장, open- 에 삼각 분할 하기 위해 사용하여 계산하십시오 . 상기 , 는 벡터를 나타낸다. 위의 책에서 모든 것을 읽을 수 없다면 이 기사 에도 이러한 방법에 대한 많은 정보가 있습니다.r>0o(min{m,n})MdetMO(nlog2n)gkhk

불행히도 나는 Moore 매트릭스 (Vandermonde가 가지고 있음)에 대한 낮은 변위 순위 구조를 찾을 수 없었습니다. 여기서 주요 합병증은 이중 지수의 "비선형"특성에서 발생하는 것으로 보입니다. 도움이된다면, Vandermonde, Cauchy, Toeplitz, Hankel의 경우가 책에서 해결됩니다.


내 행렬을 char 필드에 라이브로 만들 수 있습니다 . 그러나 의도 한 응용 프로그램의 알파벳 크기가 큽니다. 따라서 은 충분히 큰 대해 형식 입니다. 3m3kk
T ....

: 의 totient 함수를 계산할 수 있기 때문에 괜찮습니다.3k
Juan Bermejo Vega

복잡성을 단순화하지는 않습니다. 필드가 매우 크기 때문에 나는 말할 것입니다.
T ....

이중 지수로 언급 한 문제를 단순화합니다. 이후 , 사용자가 이중 exponentiate 용으로 오일러의 정리를 사용 먼저 계산 : , 입니다. 시간 에이를 수행 할 수 있습니다 . 학교 곱셈 알고리즘을 사용하면 이고 최종 "netto"비용은 효율적입니다. φ(3k)=3k3k1aqimodmb=qimodφ(3k)abmod3kO(log(n3k)M(klog3))M(n)=n2O(nωk2log23(logn+klog3))
Juan Bermejo Vega

를 바꿀 수 있습니까 ? 그것은 내가 궁금해하는 비용 절감입니다 (매트릭스 구조에서 가능할 수 있습니다). 사용하면 목적을 위해 아무것도 얻지 못합니다. ω1+ϵω2
T ....
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.