희소 다항식의 합은 O (n log n) 시간의 제곱입니까?


18

다항식 가 있다고 가정합니다 . . . , P는 m 이하인 정도의 N , N > m 제로 계수들의 총 개수가되도록, N (즉, 다항식은 드물다). 다항식을 계산하는 효율적인 알고리즘에 관심이 있습니다.p1,...,pmnn>mn

ipi(x)2

이 다항식은 기껏도 갖기 때문에 모두 입출력 크기는 O ( N ) . m = 1 의 경우 시간 O ( n log n )의 FFT를 사용하여 결과를 계산할 수 있습니다 . m < n에 대해이 작업을 수행 할 수 있습니까 ? 차이가 있다면 계수가 0과 1 인 특수한 경우에 관심이 있으며 정수를 계산해야합니다.2nO(n)m=1O(nlogn)m<n

최신 정보. 위의 빠른 솔루션은 빠른 행렬 곱셈의 발전을 의미합니다. 특히, 만약 우리가 오프 읽을 수 유전율 B의 유전율 J 의 계수로서 X I를 + N J 에서 P는 K ( X )pk(x)=i=1naikxi+j=1nbkjxnjaikbkjxi+nj . 따라서, 컴퓨팅 P는 K ( X ) 2 개의 벡터들의 외적를 계산하고, 합계 산출에 대응 Σ k 값 P는 K ( X ) 2 매트릭스 제품을 연산에 대응한다. 시간 사용 용액 있으면 F ( N , m을 ) 컴퓨팅 Σ k 값 P는 K ( X ) 2 다음을 우리가 할 수 곱하기 두 N -by- N 개의 시간에 행렬 F ( n은 2 , Npk(x)2pk(x)2kpk(x)2f(n,m)kpk(x)2nn , m n에 대한 f ( n , m ) = O ( n log n ) 에는 중대한 돌파구가 필요합니다. 그러나 f ( n , m ) = n ω / 2 이며 여기서 ω 는 행렬 곱셈의 현재 지수입니다. 아이디어가 있습니까?f(n2,n)f(n,m)=O(nlogn)mnf(n,m)=nω/2ω


1
안녕하세요 라스무스. 나는 당신이 이것을 메인 사이트로 가기위한 것이라고 생각합니다. 이 사이트에 대한 질문은 메타 사이트입니다.
Suresh Venkat

답변:


3

과 다항식 제곱 제로 계수하는 것은 시간이 걸린다 O ( X 2 I ) 이는 이들 다항식에 대한 FFT에 바람직해야하므로 일반적인 용어별로 승산 용어를 사용하여 X I < xiO(xi2) . 만약Σ내가XI=N과 다항식의 다음 번호X내가보다xi<nlognixi=nxiO(nlogn, 이것들은O(n 3 / 2 (logn) 1/2 / 2 )를 제곱하고 결합하는 데 (남은 다항식과 마찬가지로)시간이 걸립니다. 이것은mΘ( ) 일때명백한O(mnlogn)에비해 개선된 것입니다.O(n/logn)O(n3/2(logn)1/2)O(mnlogn)m.Θ(n/logn)


1
내가 관심있는 것은 각 항을 계산하지 않고 합계를 계산하는 방법입니다. 각 제품에 대해 FFT 또는 기간별 곱셈을 수행하는 것은 내가 생각한 응용 프로그램에 비해 너무 느릴 것입니다.
Rasmus Pagh 2019

2

완전한 답변은 아니지만 도움이 될 수 있습니다.

주의 사항 : 의 지지대 가 작은 경우에만 잘 작동합니다 .pi2

다항식 경우, S q = { i a i0 } 을지 지하고 s q = | S q | 지지대의 크기 여야합니다. 의 대부분의 페이지 내가 부족한 것, 즉, 작은 지원을해야합니다.q=a0+a1x++anxnSq={iai0}sq=|Sq|pi

다항식 b 에 제품 a b 의지지 크기에 준 선형 시간 을 곱하는 알고리즘이 있습니다 (예 : http://arxiv.org/abs/0901.4323 참조).abab

의지지 B (포함)은이 S + S의 B 두 세트의 합 ST는 로서 정의되는 S + T : = { S +에 t를 | S S , t T } . 모든 제품의 지지대가 작을 경우 (예 : 총 선형 n) , 제품을 계산하고 모든 모노마 이어를 합산 할 수 있습니다.abSa+SbSTS+T:={s+tsS,tT}n

이 다항식 쉽게 찾을 수 있지만입니다 하고 의 지원의 크기하도록 b는 의 지원의 크기의 차입니다 와 B . 이 특정 응용 프로그램에서 우리는 다항식을 제곱합니다. 그래서 질문이 얼마나 큰 S + S는 비교 S . 이것에 대한 일반적인 측정은 배가 숫자입니다 | S + S | / | S | . 무제한 배가되는 세트가 있습니다. 하지만 당신은의 지원으로 큰 배가 번호 세트를 제외 할 경우 페이지의 abababS+SS|S+S|/|S|pi그러면 문제에 대한 빠른 알고리즘을 얻을 수 있습니다.


1
나는 추가 조합론에 익숙하지 않지만, 일반화 된 산술 진행과 Freiman-Ruzsa 정리는 작은 배가를 갖는 세트에 관한 것이라고 생각합니다 .
이토 쓰요시

@ 쓰요시 : 당신 말이 맞아요, 나는 내 대답을 편집 할 것입니다. 그럼에도 불구하고 큰 배가 상수를 가진 GAP가 있습니다.
5501

개인적으로 나는이 접근법이 유망하다고 생각하지 않습니다. Freiman-Ruzsa 정리의 (정확하지 않은) 의미는 | S + S | / | S | 특수한 경우에만 작으므로 "p_i의 지지점으로 더 큰 배가되는 세트를 제외 할 수있는 경우"부분은 매우 큰 if 입니다. 그러나 내가 말했듯이, 나는 추가 조합론에 익숙하지 않으므로 소금 한 알로 내 말을해야합니다.
이토 쓰요시

물론 (알지 못하는) 응용 프로그램이 훌륭한 지원을 제공하는 경우에만 작동합니다.
5501

그렇다면 당신의 대답에서 그 가정을 더 분명하게 이해한다면 이해하기가 더 쉬울 것입니다. 답에 가정을 작성하는 현재 방법은 작은 배가 숫자의 가정이 큰 문제가 아니라고 생각한다는 것을 나타냅니다.
이토 쓰요시

2

자연 근사 알고리즘에 주목하고 싶었습니다. 그러나 희소성을 활용하지는 않습니다.

랜덤 시퀀스 (σ나는)나는[]X=iσipi(x) 취하면 FFT를 사용하여 n log n 시간 에 X2 를 계산할 수 있습니다 . 그런 다음 E X 2 = i p i ( x ) 2 = SnlognEX2=ipi(x)2=SVX2=O(S). 따라서시간O(ε - 2 nlogn)에서1+ε근사값을얻을 수 있습니다.O(ε2nlogn)


좋은 접근 방식! 그러나 모든 계수를 높은 확률로 올바르게 얻기 위해 더 많은 반복이 필요하지 않습니까?
Rasmus Pagh

@RasmusPagh 맞습니다. 모든 계수를 확률 1 - δ 로 유지하려면 항을 얻게 됩니다. log(n/δ)1δ
Thomas Ahle
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.