些細な試みに打ち勝つアルゴリズムを次に示します。
以下は周知の事実(オドネルの本演習1.12)である:場合f:{−1,1}n→{−1,1}程度有するブール関数である≤d多項式、その後、すべてのフーリエ係数などをf、F(Sは)の整数倍である2 - D。Cauchy-SchwarzとParsevalを使用すると、最大4 dの非ゼロフーリエ係数と∑ 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に戻ります。
≤dff≤d1/((n≤d)+4d4d)=1/O(n/d)d4d.
O(n/d)d4d
手順3の実行方法を示すために残りますを定義できます。確認してください(すべてのブール関数に対してNisan-Szegedyが保持する必要があります)そして、の変数へのすべての可能な割り当てでを評価します。これは時間ます。GurとTamuzは、このタスクに対してより高速なランダム化アルゴリズムを提供しますが、この部分は時間の複雑さを支配しないため、これで十分です。A=⋃{S:aS≠0}|A|≤d2dfA2d2d
全体的に、アルゴリズムは次数のランダムなサンプルを生成します≤dO(nd)d4dn≤d2d2O(d24d)
≤d1/22n