Rozważ funkcję obliczoną przez obwód logiczny z wejściami o rozmiarze na podstawie (z indegree 2 dla bram ).C n s ( n ) = p o l y ( n ) { X O R , A N D , N O T } X O R , A N D
Obwód boolowski jest warstwowy, jeśli można go ułożyć w warstwy ( jest głębokością obwodu) bramek w taki sposób, że jakakolwiek krawędź między dwiema bramami łączy sąsiednie warstwy.d
Biorąc pod uwagę, że ma obwód boolowski o rozmiarze , co możemy powiedzieć o rozmiarze obwodu warstwowego obliczającego ? Istnieje trywialna górna granica: dodając atrapy do na każdej warstwie przecinanej przez krawędź, otrzymujemy warstwowy obwód o wielkości co najwyżej . Ale czy możemy ogólnie poprawić się (np. lub ), lub w przypadku interesującej klasy obwodów?s f C O ( s 2 ) O ( s ⋅ log s ) O ( s )
Tło. To pytanie wynika z ostatnich wyników w kryptografii, które pokazują, jak bezpiecznie obliczyć warstwowe obwody boolowskie o rozmiarze z komunikacją (np. lub ; Próbuję zrozumieć, jak restrykcyjne może być to ograniczenie do warstwowych obwodów boolowskich, zarówno w przypadku obwodów ogólnych, jak i obwodów „naturalnych”. W literaturze nie znalazłem jednak wiele na temat obwodów warstwowych; mile widziane są również odpowiednie wskazówki.o ( s ) s / log s s / log log s )
źródło
Odpowiedzi:
O ile mi wiadomo, badano trzy klasy obwodów warstwowych. We wszystkich tych definicjach łuki są dozwolone tylko między dwiema sąsiadującymi warstwami.
Obwód nazywa się synchroniczny ( Harper 1977 ), jeśli wszystkie bramki są ułożone w warstwy, a wejścia muszą znajdować się w warstwie 0. (Równoważna definicja: dla dowolnej bramki wszystkie ścieżki od wejść do mają tę samą długość).g g
Obwód jest lokalnie synchroniczny ( Belaga 1984 ), jeśli każde wejście występuje dokładnie raz, ale na dowolnej warstwie.
Obwód jest warstwowy ( Gál, Jang 2010 ), jeśli bramki i wejścia są ułożone w warstwy, dane wejściowe mogą występować wiele razy na różnych warstwach. (Definicja równoważna: dla każdej bramki bramki wyjściowej wszystkie ścieżki skierowane od do mają tę samą długość.)g o g o
Łatwo zauważyć, że trzy klasy są wymienione od najsłabszych do najsilniejszych (a klasa obwodów nieograniczonych jest jeszcze silniejsza).
Jeśli chodzi o rozmiar obwodu warstwowego obliczającego nieograniczony obwód o rozmiarze , wiemy, co następuje:s
Dowolny obwód o rozmiarze może być obliczony przez synchroniczny / lokalnie synchroniczny / warstwowy obwód o rozmiarze ( Wegener 1987, Rozdział 12.1 ).s s2
Trudno znaleźć wyraźną funkcję, która wymaga synchronicznego / lokalnie synchronicznego / warstwowego obwodu o rozmiarze . Rzeczywiście, każdy obwód o rozmiarze i głębokości może być obliczony przez obwód synchroniczny o rozmiarze ( Wegener 1987, sekcja 12.1 ). Zatem nawet jeśli mamy wyraźną funkcję która wymaga obwodów synchronicznych o rozmiarze (niezależnie od jej złożoności w klasie obwodów nieograniczonych), to nie może być obliczone przez obwód o głębokości i rozmiar , który odpowiada od dawna otwartemu pytaniu o złożoności obwodu (ω(slogs) s d O(sd) f ω ( n log n ) f O ( log n ) O ( n )f ω(nlogn) f O(logn) O(n) Valiant 1977 ).
Istnieją wyraźne funkcje
3.1 z dolną granicą dla obwodów synchronicznych, ale górną granicą dla obwodów lokalnie synchronicznych ( Turán 1989 ).Ω(nlogn) O ( n )O(n)
3.2 z dolną granicą dla obwodów lokalnie synchronicznych, ale górną granicą dla obwodów warstwowych ( Turán 1989 ).Ω(nlogn) O ( n )O(n)
Należy zauważyć, że te dwa wyniki separacji firmy Turán zostały udowodnione dla funkcji z jednym wyjściem. Często o wiele łatwiej jest znaleźć funkcję z wyjściami, która oddziela dwie takie klasy.n
Jako przykład rozważmy funkcję której ty bit wyjściowy jest XOR wszystkich wejść z wyjątkiem tego. Tę funkcję można łatwo obliczyć za pomocą obwodu warstwowego o rozmiarze : Najpierw oblicz XOR wszystkich danych wejściowych w warstwach o całkowitej wielkości , a następnie oblicz wszystkie dane wyjściowe w jednej warstwie o wielkości . Z drugiej strony wymaga obwodów synchronicznych o rozmiarze . Rzeczywiście, aby obliczyć parzystość o długości , głębokość obwodu musi wynosić co najmniej . Z drugiej strony każda warstwa musi transmitowaćf:{0,1}n→{0,1}n i i O(n) logn n n f Ω(nlogn) n−1 Ω(logn) n bitów informacji, więc jego rozmiar musi wynosić co najmniejn .
źródło