Obliczenia KK
3. OBWODY LOGICZNE
3.1. Niech B = {0, 1}. Niech A bȩdzie rodzina̧ funkcji Boolowskich,
tzn. funkji Bk → B dla pewnych k.
Obwodem logicznym nad A od n zmiennych wejściowych x1 , ..., xn i m
zmiennych pomocniczych y1 , ..., ym nazywami cia̧g przypisań postaci
yj := fj (u1 , ..., ur ),
gdzie fj ∈ A i każda zmienna z u1 , ..., ur albo należy do x1 , ..., xn , albo
wystȩpuje w roli yj w jednym z poprzednich przypisań.
Wyróżniaja̧c l pomocniczych zmiennych (l ≤ m) jako zmienne wyjściowe
i przyjmuja̧c ich końcowe wartości jako wynik, otrzymujemy pewien algorytm
obliczenia funkcji z Bn do Bl .
Obwód logiczny jest nazywany formuła̧, jeśli każda zmienna pomocnicza
oprócz zmiennych wyjściowych pojawia siȩ w prawych czȩściach przypisań
dokładnie jeden raz, a zmienne wyjściowe pojawiaja̧ siȩ tylko w lewej czȩści
i też tylko raz.
Rozmiarem obwodu nazywamy liczbȩ przypisań.
Głȩbokościa̧ obwodu nazywamy maksymalna̧ długość ścieżki przypisań od
input do output.
Niech f : Bn → Bm . Minimalny rozmiar obwodu nad A obliczaja̧cy f
nazywa siȩ złożonościa̧ f nad A i jest oznaczany przez cA (f ).
3.2. Rodzina A nazywa siȩ zupełna̧, jeśli każda funkcja Boolowska może
być zrealizowana przez obwód logiczny nad A.
Bȩdziemy dalej zakładać, że A jest skończona̧ rodzina̧ zupełna̧.
Zadanie 1. Dać przykład 3-elementowej rodziny zupełnej i udowodnić,
źe jest zupełna.
Zadanie 2. Skonstruować algorytm rozstrzygaja̧cy, czy skończona rodzina A finkcji Boolowskich jest zupełna.
Zadanie 3. Pokazać, że dla dowolnych dwóch zupełnych rodzin A1 i A2
zachodzi cA2 (f ) = O(cA1 (f )).
1
Twierdzenie 3.2.1. Niech n ∈ N.
W każdym z poniższych przypadków istnieje obwód logiczny rozmiaru O(n) i
głȩbokości O(log(n)) realizuja̧cy odpowiedni algorytm.
(a) Dla dowolnych dwóch liczb n-bitowych rozpoznać, czy sa̧ równe, a gdy
nie sa̧, rozpoznać która jest wiȩksza.
(b) Gdy n = 2l dla dowolnego n-bitowego cia̧gu x0 ...xn−1 i l-bitowego
indeksu j znaleźć xj .
(c) Gdy n = 2l dla dowolnego n-bitowego cia̧gu x0 ...xn−1 sprawdzić, czy
istnieje xj > 0 i znaleźć najmniejsze takie j.
(d) Rozpoznać, czy ilość jedynek przewyższa ilość zer w cia̧gu x0 ...xn−1 .
(e) Znaleźć sumȩ dwóch n-bitowych liczb.
Wniosek. Niech n ∈ N.
W każdym z poniższych przypadków istnieje obwód logiczny rozmiaru O(nm)
i głȩbokości O(log(n) + log(m)) realizuja̧cy:
(a) algorytm dodawania m n-bitowych liczb;
(b) mnożenia liczby n-bitowej z liczba̧ m-bitowa̧.
3.3. Niech B∗ bȩdzie suma̧ wszystkich Bn . Każdy predykat F : B∗ → B
jest utożsamiany z cia̧giem odpowiednich funkcji Boolowskich Fn : Bn → B.
Klasa P/poly składa siȩ z takich predykatów F , że dla pewnego wielomianu p(x), c(Fn ) ≤ p(n) (tzn. c(Fn ) = poly(n)).
Rozpatruja̧c liczby naturalne w postaci binarnej każdy predykat/funkcja
na Nk jest utożsamiany/a z pewnym predykatem na B∗ /funkcja̧ B∗ → B∗ .
W poniższym twierdzeniu obiekty klasy P rozpatrujemy w ich postaci binarnej.
Twierdzenie 3.3.1. (1) P ⊂ P/poly;
(2) Predykat F ∈ P/poly należy do P wtedy i tylko wtedy, gdy istnieje
maszyna Turinga, która dla każdej liczby n w czasie poly(n) buduje obwód
logiczny Cn rozmiaru poly(n), który realizuje Fn .
Zadanie 4. Znaleźć dwa przykłady realizuja̧ce (P/poly)\P i (P/poly)\
Decidability.
Twierdzenie 3.3.2. BPP ⊆ P/poly.
2
Download

Obliczenia KK 3. OBWODY LOGICZNE 3.1. Niech B = {0,1}. Niech A