Funzioni casuali di basso grado come un vero polinomio


21

Esiste un modo (ragionevole) per campionare una funzione booleana uniformemente casuale f:{0,1}n{0,1} cui grado come polinomio reale è al massimo d ?

EDIT: Nisan e Szegedy hanno dimostrato che una funzione di grado d dipende al massimo d2d coordinate, così possiamo supporre che nd2d . I problemi che vedo sono i seguenti: 1) Da un lato se selezioniamo una funzione booleana casuale su coordinate d2d , il suo grado sarà vicino a d2d , molto più alto di d . 2) D'altra parte, se selezioniamo ogni coefficiente di grado al massimo d a caso, la funzione non sarà booleana.

Quindi la domanda è: c'è un modo per campionare una funzione booleana di basso grado che evita questi due problemi?


3
Vuoi che la funzione effettiva sia la restrizione di un polinomio reale di grado da d a 0-1 ingressi, o vuoi che sia tale f(x)=1 iff p(x)>0 per qualche vero polinomio p di laurea al massimo d ? O qualcos'altro?
Joshua Grochow,

3
@JoshuaGrochow Voglio una funzione la cui espansione di Fourier ha grado d . Questa è la tua prima opzione.
Igor Shinkar,

1
Qual è il tuo modello? Annotare la funzione campionata richiede 2n tempo o nO(d) se si desidera emettere l'espansione di Fourier. è duna costante fissa?
MCH

3
Ho aggiunto alcuni dettagli in più alla domanda.
Igor Shinkar,

1
@MCH Se una funzione se di grado d (con peso nullo sul livello d ), allora non può dipendere da più di d2d coordinate. Questo è un risultato dovuto a Nisan e Szegedy. Pensa al caso speciale di d=1 . In questo caso sappiamo che la funzione dipende (al massimo) da 1 coordinata.
Igor Shinkar,

Risposte:


11

Ecco un algoritmo che batte i tentativi banali.

Quanto segue è un fatto noto (Esercizio 1.12 nel libro di O'Donnell): Se f:{1,1}n{1,1} è una funzione booleana che ha grado d come polinomio, quindi ogni coefficiente di Fourier di f , f ( S ) è un multiplo intero di 2 - d . Utilizzando Cauchy-Schwarz e Parseval si ottiene che ci sono al massimo 4 d nonzero coefficienti di Fourier e Σ S | f^(S)2d4dS|f^(S)|2d.

Questo suggerisce un metodo di campionamento -

  1. Scegli numeri interi non negativi casuali aS per tutti gli insiemi S[n] di dimensione al massimo d , che si sommano a 4d .
  2. Sia f(x)=SaS2dχS(x).
  3. Verifica che f sia booleano. In tal caso, restituire f . Altrimenti, torna a 1 .

Si noti che per ogni grado d polinomio f esattamente una scelta di numeri interi casuali nel passaggio 1 genererà il polinomio f . La probabilità di ottenere un grado specifico d polinomio è

1/((nd)+4d4d)=1/O(n/d)d4d.
Quindi, dobbiamo ripetere questo processo al massimoO(n/d)d4dvolte, in attesa, prima di interrompere.

Resta da mostrare come eseguire il passaggio 3. Si può definire A={S:aS0} . Verifica che |A|d2d (che dovrebbe contenere da Nisan-Szegedy per ogni funzione booleana) e quindi valutare f su tutte le possibili assegnazioni alle variabili A . Questo può essere fatto in tempo 2d2d . Gur e Tamuz offrono un algoritmo randomizzato molto più veloce per questo compito, tuttavia poiché questa parte non domina la complessità temporale questo è sufficiente.

Nel complesso l'algoritmo produce un campione casuale di un grado d polinomiale nel tempo O(nd)d4d. Partendo dal presupposto chend2dla complessità temporale è2O(d24d).

Questo non è un algoritmo di tempo polinomiale di campionamento, anche se è molto più veloce di campionamento di una funzione completamente casuale (nel qual caso la probabilità di ottenere una laurea specifica d polinomio è 1/22n ).


dn=10d2d
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.