Losowe funkcje niskiego stopnia jako prawdziwy wielomian

21

Czy istnieje (rozsądny) sposób na pobranie próbki losowo jednakowej funkcji boolowskiej której stopień rzeczywistej wielomianu wynosi co najwyżej ?df:{0,1}n{0,1}d

EDYCJA: Nisan i Szegedy wykazali, że funkcja stopnia zależy od co najwyżej współrzędnych , więc możemy założyć, że . Problemy, które widzę, są następujące: 1) Z jednej strony, jeśli wybierzemy losową funkcję logiczną na współrzędnych , to jej stopień będzie zbliżony do , znacznie wyższy niż . 2) Z drugiej strony, jeśli wybieramy każdy współczynnik co najwyżej losowo, wówczas funkcja nie będzie wartością logiczną.d 2 d n d 2 d d 2 d d 2 d d ddd2dnd2dd2dd2ddd

Pytanie zatem brzmi: czy istnieje sposób na wypróbowanie funkcji logicznej niskiego stopnia, która pozwala uniknąć tych dwóch problemów?

Igor Shinkar
źródło
3
Chcesz rzeczywista funkcja będzie ograniczenie realnego wielomianem stopnia do 0-1 wejść, czy też ma to być, że wtedy i tylko wtedy dla prawdziwych wielomianu z stopień co najwyżej ? Albo coś innego? df(x)=1p(x)>0pd
Joshua Grochow
3
@JoshuaGrochow Chcę funkcji, której rozszerzenie Fouriera ma stopień . To twoja pierwsza opcja. d
Igor Shinkar
1
Jaki jest twój model Zapisanie próbkowanej funkcji zajmuje czasu lub jeśli chcesz wyprowadzić rozszerzenie Fouriera. Czy jest stałą stałą? 2nnO(d)d
MCH
3
Dodałem więcej szczegółów w pytaniu.
Igor Shinkar
1
@MCH Jeśli funkcja ma stopień (z zerową masą powyżej poziomu ), to nie może zależeć od więcej niż współrzędnych . Jest to wynik dzięki Nisanowi i Szegedy. Pomyśl o szczególnym przypadku . W tym przypadku wiemy, że funkcja zależy od (co najwyżej) 1 współrzędnej. d d 2 d d = 1ddd2dd=1
Igor Shinkar

Odpowiedzi:

11

Oto algorytm, który przewyższa trywialne próby.

Znanym faktem jest (Ćwiczenie 1.12 w książce O'Donnella): Jeśli f:{1,1}n{1,1} jest funkcją logiczną, która ma stopień d jako wielomian, to każdy współczynnik Fouriera z f , C ( S ) jest całkowitą wielokrotnością 2 - d . Używając Cauchy'ego-Schwarza i Parsevala uzyskuje się, że istnieją maksymalnie 4 d niezerowe współczynniki Fouriera i S | ˆf^(S)2d4dS|f^(S)|2d.

Sugeruje to metodę próbkowania -

  1. Wybierz losowe nieujemne liczby całkowite aS dla wszystkich zbiorów S[n] wielkości co najwyżej d , które sumują się do 4d .
  2. Niech f(x)=SaS2dχS(x).
  3. Sprawdź, czy jest wartością logiczną. Jeśli tak, zwróć . W przeciwnym razie wróć do .ff1

Należy zauważyć, że dla każdego stopnia wielomian dokładnie jeden wybór losowych liczb w kroku 1 wygeneruje wielomianu . Prawdopodobieństwo uzyskania określonego wielomianu wynosi Dlatego musimy powtórzyć ten proces co najwyżej razy, w oczekiwaniu, przed zatrzymaniem.dffd

1/((nd)+4d4d)=1/O(n/d)d4d.
O(n/d)d4d

Pozostaje pokazać, jak wykonać krok 3. Można zdefiniować . Sprawdź, czy (który powinien posiadać według Nisana-Szegedy każdej logicznej funkcji), a następnie ocenić wszystkie możliwe do przypisania w zmiennych . Można to zrobić w czasie . Gur i Tamuz oferują znacznie szybszy randomizowany algorytm do tego zadania, jednak ponieważ ta część nie dominuje złożoności czasowej, to wystarczy.A={S:aS0}|A|d2dfA2d2d

Ogólnie algorytm generuje losową próbkę stopnia wielomianu w czasie . Przy założeniu, że złożoność czasowa wynosi .dO(nd)d4dnd2d2O(d24d)

Nie jest wielomianem czasu próbkowania algorytmu, ale jest o wiele szybsze pobieranie próbek całkowicie funkcji losowej (w tym przypadku prawdopodobieństwo uzyskania stopnia konkretnego wielomian ).d1/22n

Avishay Tal
źródło
Miły! W rzeczywistości daje to algorytm, który whp (wrt ) wyprowadza maksymalną możliwą liczbę współrzędnych, od których może zależeć funkcja niskiego stopnia. Wystarczy wziąć aby było wystarczająco duże, próbkuj wiele funkcji i dla każdej funkcji policz liczbę wpływowych współrzędnych. Wydaj maksimum, które widzisz. n = 10 d 2 ddn=10d2d
Igor Shinkar