Gdy ogranicza się do wejść - , każdy -circuit oblicza jakąś funkcję . Aby uzyskać funkcję logiczną , możemy po prostu dodać jedną bramkę progową fanin-1 jako bramkę wyjściową. Na wejściu wynikowy próg - obwód wyprowadza następnie jeśli , i wyprowadza jeśli ; próg może być dowolną liczbą całkowitą dodatnią, która może zależeć od a ∈ { 0 , 1 } n { + , × } 1 F ( a ) ≥ t 0 F ( a ) ≤ t - 1 t = t n n ale nie na wartościach wejściowych. Powstały obwód oblicza pewną (monotoniczną) funkcję boolowską .
Pytanie: Czy progi -obwody mogą być skutecznie symulowane przez -circuits?
Pod „wydajnie” mam na myśli „z wielomianowym wzrostem wielkości”. Odpowiedź brzmi „tak” dla progu : wystarczy zastąpić przez , przez i usunąć ostatnią bramkę progową. Oznacza to, że -obwody są w rzeczywistości progiem -obwody. Ale co z większymi progami, powiedzmy, ?
Można zdefiniować arytmetyczne analogi większości klas obwodów boolowskich po prostu używając zamiast OR, zamiast AND i zamiast . Na przykład, obwody to -obwody o stałej głębokości z nieograniczonymi bramkami fanin i oraz wejściami i . Agrawal, Allender i Datta wykazały, że ten próg = . (Przypomnij sobie, że sam jest poprawnypodzbiór ; weźmy, powiedzmy, funkcję większości). Innymi słowy, obwody progowe o stałej głębokości można skutecznie symulować za pomocą obwodów o stałej głębokości , z tylko jedną bramą progową! Zauważ jednak, że moje pytanie dotyczy obwodów monotonicznych (bez minusów „ ” jako bramek, a nawet bez jako wejść). Czy w takim razie jedna (ostatnia) brama progowa może być tak potężna? Nie znam tego, więc wszelkie powiązane wskazówki są mile widziane.
Uwaga: istnieje jeszcze inny interesujący wynik związany z Arnoldem Rosenbloomem: obwody z tylko jedną funkcją monotoniczną ponieważ bramka wyjściowa może obliczyć każdą funkcję wycinka za pomocą bramek . Funkcja wycinka jest monotoniczną funkcją logiczną, która dla niektórych ustalonych wartości wyprowadza (odpowiednio ) na wszystkich wejściach z mniejszą liczbą (odpowiednio, więcej) niż . Z drugiej strony, łatwe liczenie pokazuje, że większość funkcji wycinania wymaga ogólnych -obwodów o wykładniczej wielkości. Zatem jedna „niewinna” dodatkowa bramka wyjściowa możeO ( n ) k 0 1 k { ∨ , ∧ , ¬ }uczyń obwody monotoniczne wszechmocnymi! Moje pytanie dotyczy tego, czy może się tak zdarzyć, gdy jest bramą progową dla fanin- . 1
AKTYWIZACJA (dodano 03.11.2014): Emil Jeřábek pokazał (poprzez zadziwiająco prostą konstrukcję, patrz jego odpowiedź poniżej), że odpowiedź brzmi „tak”, o ile dla stałej . Pytanie pozostaje otwarte tylko dla progów wielomianowych (w ). c
Zwykle w aplikacjach działają tylko duże progi: zwykle potrzebujemy progów w postaci dla . Powiedzmy, że jeśli zlicza liczbę ścieżek - na wykresie określonych przez wejście - , to dla o The threshold- wersja rozwiązuje istnienie Hamiltona - problemu ścieżki na wykresy -Vertex (patrz, na przykład tutaj ). ϵ > 0 F : { 0 , 1 } n → N s t 0 1 t = m m 2 m ≈ n 1 / TFstm
(Dodano 14.11.2014): Ponieważ Emil odpowiedział na dużą część mojego pytania, a ponieważ sprawa progów wykładniczych nie jest widoczna, teraz akceptuję (bardzo miłą) odpowiedź Emila.
Odpowiedzi:
Odpowiedź brzmi „tak”, jeśli . Mówiąc bardziej ogólnie, próg obwód o rozmiarze z progiem może być symulowany przez obwód o rozmiarze . { + , ⋅ } s t { ∨ , ∧ } O ( t 2 s )t=nO(1) {+,⋅} s t {∨,∧} O(t2s)
Najpierw zauważ, że wystarczy ocenić obwód w z obciętym dodawaniem i mnożeniem: w szczególności, jeśli , to i również, lub .a , a ′ ≥ t a + b , a ′ + b ≥ t a b , a ′ b ≥ t a b = a ′ b ( = 0 ){0,…,t} a,a′≥t a+b,a′+b≥t ab,a′b≥t ab=a′b(=0)
Mając to na uwadze, możemy zasymulować obwód z logicznym obwodem monotonicznym, zastępując każdy węzeł węzłami , gdzie ma obliczyć predykat . (Potrzebujemy tylko dla wygody notacji, to oblicza funkcję stałej ) Jeśli jest boolowską zmienną wejściową , przyjmujemy , . Jeśli jest bramą dodawania, powiedzmy , implementujemy ją poprzez Bramki mnożenia są obsługiwane w ten sam sposób.c 0 , … , c t c i c ≥ ic c0,…,ct ci c≥i 1 c x c 1 = x c 2 = ⋯ = c t = 0 c c = a + b c i = ⋁ j , k ≤ t j + k ≥ i ( a j ∧ b k ) .c0 1 c x c1=x c2=⋯=ct=0 c c=a+b
Wymaga to bramek na jedną bramkę oryginalnego obwodu. Jako drobną optymalizację możemy zredukować ją do , wprowadzając dzięki czemu każdy jest używany jako dane wejściowe tylko jednego z bramy.O ( t 2 ) c tO(t3) O(t2) aj∧bk
źródło