Funciones aleatorias de bajo grado como un polinomio real

21

¿Hay una manera (razonable) de muestrear una función booleana uniformemente aleatoria cuyo grado como polinomio real es como máximo ?df:{0,1}n{0,1}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 ddd2dnd2dd2dd2ddd

Entonces la pregunta es: ¿hay alguna forma de probar una función booleana de bajo grado que evite estos dos problemas?

Igor Shinkar
fuente
3
¿Desea que la función real sea la restricción de un polinomio real de grado a 0-1 entradas, o desea que sea iff para algún polinomio real de grado a lo sumo ? ¿O algo mas? f ( x ) = 1 p ( x ) > 0 p ddf(x)=1p(x)>0pd
Joshua Grochow
3
@JoshuaGrochow Quiero una función cuya expansión de Fourier tenga grado . Esa es tu primera opción. d
Igor Shinkar
1
Cual es tu modelo Anotar la función muestreada toma tiempo, o si desea generar la expansión de Fourier. ¿Es una constante fija? n O ( d ) d2nnO(d)d
MCH
3
Agregué algunos detalles más en la pregunta.
Igor Shinkar
1
@MCH Si una función es de grado d (con peso cero por encima del nivel d ), entonces no puede depender de más de d2d coordenadas. Este es un resultado debido a Nisan y Szegedy. Piensa en el caso especial de d=1 . En este caso, sabemos que la función depende (como máximo) de 1 coordenada.
Igor Shinkar

Respuestas:

11

Aquí hay un algoritmo que supera los intentos triviales.

El siguiente es un hecho conocido (Ejercicio 1.12 en el libro de O'Donnell): Si f:{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)2d4dS|f^(S)|2d.

Esto sugiere un método de muestreo:

  1. Elija enteros no negativos aleatorios aS para todos los conjuntos S[n] de tamaño como máximo d , que suman 4d .
  2. Deje f(x)=SaS2dχS(x).
  3. Verifique que f sea ​​booleana. Si es así, regrese f . De lo contrario, regrese a 1 .

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/((nd)+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:aS0}|A|d2dfA2d2d

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 .dO(nd)d4dnd2d2O(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 ).d1/22n

Avishay Tal
fuente
¡Agradable! En realidad, esto proporciona un algoritmo que whp (wrt ) genera el número máximo posible de coordenadas de las que puede depender la función de bajo grado. Simplemente tome para que sea lo suficientemente grande, muestree muchas funciones y, para cada función, cuente el número de coordenadas influyentes. Salida del máximo que ves. n = 10 d 2 ddn=10d2d
Igor Shinkar