¿Hay una manera (razonable) de muestrear una función booleana uniformemente aleatoria cuyo grado como polinomio real es como máximo ?d
EDITAR: Nisan y Szegedy han demostrado que una función de grado depende a lo sumo de las coordenadas , por lo que podemos suponer que . Los problemas que veo son los siguientes: 1) Por un lado, si elegimos una función booleana aleatoria en las coordenadas , entonces su grado será cercano a , mucho más alto que . 2) Por otro lado, si seleccionamos cada coeficiente de grado como máximo al azar, entonces la función no será booleana.d 2 d n ≤ d 2 d d 2 d d 2 d d d
Entonces la pregunta es: ¿hay alguna forma de probar una función booleana de bajo grado que evite estos dos problemas?
randomness
boolean-functions
bounded-degree
Igor Shinkar
fuente
fuente
Respuestas:
Aquí hay un algoritmo que supera los intentos triviales.
El siguiente es un hecho conocido (Ejercicio 1.12 en el libro de O'Donnell): Sif:{−1,1}n→{−1,1} es una función booleana que tiene un grado ≤d como polinomio, entonces cada coeficiente de Fourier de f , f ( S ) es un múltiplo entero de 2 - d . Usando Cauchy-Schwarz y Parseval se obtiene que hay como máximo 4 d coeficientes de Fourier distintos de cero y ∑ S | ˆf^(S) 2−d 4d ∑S|f^(S)|≤2d .
Esto sugiere un método de muestreo:
Tenga en cuenta que por cada grado≤d polinomio f exactamente una elección de enteros aleatorios en el Paso 1 generará el polinomio f . La probabilidad de obtener un grado específico ≤d polinomio es
Por lo tanto, necesitamos repetir este proceso como máximo veces, con expectativa, antes de detenerlo.1/((n≤d)+4d4d)=1/O(n/d)d4d. O(n/d)d4d
Queda por mostrar cómo realizar el paso 3. Se puede definir . Compruebe que (que debe contener por Nisan-Szegedy para cada función booleana) y luego evaluar en todas las posibles asignaciones a las variables en . Esto se puede hacer a tiempo . Gur y Tamuz ofrecen un algoritmo aleatorio mucho más rápido para esta tarea, sin embargo, dado que esta parte no domina la complejidad del tiempo, es suficiente.A=⋃{S:aS≠0} |A|≤d2d f A 2d2d
En general, el algoritmo produce una muestra aleatoria de un grado polinomio en el tiempo . Bajo el supuesto de que la complejidad del tiempo es .≤d O(nd)d4d n≤d2d 2O(d24d)
Este no es un algoritmo de muestreo de tiempo polinómico, aunque es mucho más rápido que muestrear una función completamente aleatoria (en cuyo caso la probabilidad de obtener un grado específico polinomio es 1/2 ).≤d 1/22n
fuente