Existe-t-il un moyen (raisonnable) d'échantillonner une fonction booléenne uniformément aléatoire dont le degré en tant que polynôme réel est au plus ?d
EDIT: Nisan et Szegedy ont montré qu'une fonction du degré dépend au plus de coordonnées , nous pouvons donc supposer que . Les problèmes que je vois sont les suivants: 1) D'une part, si nous choisissons une fonction booléenne aléatoire sur les coordonnées , alors son degré sera proche de , beaucoup plus élevé que . 2) D'un autre côté, si nous choisissons chaque coefficient de degré au plus au hasard, alors la fonction ne sera pas booléenne.d 2 d n ≤ d 2 d d 2 d d 2 d d d
La question est donc: existe-t-il un moyen d'échantillonner une fonction booléenne à faible degré qui évite ces deux problèmes?
la source
Réponses:
Voici un algorithme qui bat les tentatives triviales.
Ce qui suit est un fait connu (exercice 1.12 dans le livre d'O'Donnell): Si est une fonction booléenne dont le degré est un polynôme, alors tout coefficient de Fourier de , est un multiple entier de . En utilisant Cauchy-Schwarz et Parseval, on obtient qu'il y a au plus coefficients de Fourier non nuls et .F: { - 1 , 1 }n→ { - 1,1} ≤ d F f ( S ) 2 - d 4 d Σ S | F ( S ) | ≤ 2 joursF^( S) 2- d 4ré ∑S| F^( S) | ≤ 2ré
Cela suggère une méthode d'échantillonnage -
Notez que pour chaque degré≤ d polynôme F exactement un choix d'entiers aléatoires à l'étape 1 générera le polynôme F . La probabilité d'obtenir un polynôme de degré ≤ d spécifique est de
1 / ( ( n≤ d) +4ré4ré) =1/O(n/d)ré4ré.
Par conséquent, nous devons répéter ce processus au plusO ( n / d)ré4ré fois, dans l'attente, avant de nous arrêter.
Reste à montrer comment réaliser l'étape 3. On peut définirA = ⋃ { S: unS≠ 0 } . Vérifiez que | A | ≤d2ré (qui doit contenir par Nisan-Szegedy pour chaque fonction booléenne), puis d' évaluer F sur toutes les affectations possibles des variables UNE . Cela peut se faire dans le temps 2ré2ré . Gur et Tamuz offrent un algorithme randomisé beaucoup plus rapide pour cette tâche, mais comme cette partie ne domine pas la complexité temporelle, cela suffit.
Globalement, l'algorithme produit un échantillon aléatoire d'un polynôme de degré≤ d dans le temps O(nd)d4d . Dans l'hypothèse oùn≤d2d la complexité temporelle est de2O(d24d) .
Cela ne veut pas un algorithme d' échantillonnage en temps polynomial, bien qu'il soit beaucoup plus rapide que l' échantillonnage d' une fonction complètement aléatoire (dans ce cas , la probabilité d'obtenir un degré spécifique≤d polynôme est 1/22n ).
la source