다음은 사소한 시도를 능가하는 알고리즘입니다.
다음은 알려진 사실입니다 (O'Donnell의 책에서 1.12 연습). f:{−1,1}n→{−1,1} 이 다항식으로 차수 ≤d 를 갖는 부울 함수 인 경우 모든 푸리에 계수 의 f , F ( S가 ) 의 정수배 (2) - (D) . Cauchy-Schwarz와 Parseval을 사용하면 최대 4 일의 0이 아닌 푸리에 계수와 ∑ S | ˆf^(S)2−d4d∑S|f^(S)|≤2d.
이것은 샘플링 방법을 제안합니다-
- 임의의 음이 아닌 정수를 선택 S를 모든 세트에 대해 S ⊆ [ N ] 최대 크기 (D) , 합계 최대 ≤ 4 D .aSS⊆[n]d≤4d
- 하자 f(x)=∑SaS2dχS(x).
- f 가 부울 인지 확인하십시오 . 그렇다면 f 반환하십시오 . 그렇지 않으면 1 로 돌아갑니다 .
모든 차수 ≤d 다항식 f 대해 1 단계에서 정확히 하나의 임의의 정수를 선택하면 다항식 f 가 생성됩니다 . 특정 차수 ≤d 다항식 을 얻을 확률 은
1/((n≤d)+4d4d)=1/O(n/d)d4d.
따라서, 우리는 기껏이 프로세스를 반복 할 필요가O(n/d)d4d정지 전에, 기대의 시간.
3 단계를 수행하는 방법을 보여줍니다. A=⋃{S:aS≠0} 정의 할 수 있습니다 . 확인 |A|≤d2d (모든 부울 함수에 대해 Nisan-Szegedy가 보유해야 함) 그리고 A 의 변수에 가능한 모든 할당에 대해 f 를 평가 합니다. 시간 2 d 2 d 에서 수행 할 수 있습니다 . Gur와 Tamuz는이 작업에 대해 훨씬 빠른 무작위 알고리즘을 제공하지만이 부분이 시간 복잡성을 지배하지 않기 때문에 충분합니다.A2d2d
전체적으로 알고리즘은 시간 O ( n) 에서 ≤d 다항식 의 랜덤 샘플을 생성합니다.O(nd)d4d. n≤d2d라고 가정하면 시간 복잡도는2O(d24d)입니다.
훨씬 더 빨리 후 (이 경우에 특정 정도 걸릴 확률 완전히 랜덤 함수를 샘플링하지만 이것은 샘플링 알고리즘 다항식 시간이 아니다 ≤d 다항식은 1/22n ).