Documente Academic
Documente Profesional
Documente Cultură
Complexitatea uniformă a
circuitelor
Profesor:
Conf. dr. Tataram Monica
Realizat de:
Rotariu Oana - Maria
Petcu Nicuşor - Costinel
Ianuarie 2011
Cuprins
1 Circuite booleene 4
1.1 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Familii de circuite . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 Reprezentarea circuitelor . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4 Maşinile Turnig şi Circuitele Booleene . . . . . . . . . . . . . . . . . 10
2
Listă de figuri
3
Capitolul 1
Circuite booleene
1.1 Introducere
Acest capitol este o introducere ı̂n complexitatea neuniformă : complexitatea cir-
cuitelor booleene. Pentru ı̂nceput fixăm următoarele familii de operaţii booleene
(operaţii de bază): constantele - adică operaţiile logice - ”true” (1) şi ”false” (0),
operaţia unară de negare, ¬ şi operaţiile binare ∧ şi ∨. Vom folosi aceste operaţii
pentru a calcula alte funcţii logice de ordin n.
4
CAPITOLUL 1. CIRCUITE BOOLEENE 5
Definiţie 3
gi dacă gi este sursă
¬rez(g )
dacă gi = (¬, gl )
i
rez(gi ) =
rez(gl ) ∧ rez(gm ) dacă gi = (∧, rez(gl ), rez(gm ))
rez(g ) ∨ rez(g )
dacă gi = (∨, rez(gl ), rez(gm ))
l m
Definiţie 4 Un circuit boolean, numit şi maşină combinaţională sau pur şi simplu
un circuit, este o reprezentare aciclică a unui lanţ computaţional (computational
chain), construit prin asocierea la fiecare pas gi al lanţului a unui nod etichetat
cu variabila, constanta sau operaţia prezentă ı̂n gi , şi unind nodul gi cu nodul gj
printr-un arc direct dacă gi este o intrare pentru gj .[2]
Definiţie 5 Conform [4] un circuit este un graf C=(V, E), unde nodurile din
mulţimea V = {1, . . . , n} se numesc porţi ale lui C. Graful C are o structură
specială:
1. graful C nu conţine cicluri; fiecare dintre arcele grafului sunt de forma (i, j),
unde i < j;
4. nodul n (poartă numerotată cu numărul cel mai mare, care are gradul exte-
rior3 0) se numeşte poartă de ieşire a circuitului4 .
Fie o funcţie booleană f definintă pe {0, 1}n cu valori ı̂n {0, 1}m , care poate fi
reprezentată ca un m-tuplu f={f1 , . . . , fm } de funcţii booleene definite pe {0, 1}n
1
Numărul arcelor care intră ı̂n nod.
2
Porţile cu gradul interior 0 se numesc intrări ale grafului C.
3
Numărul de arce care ies din nod.
4
Circuitele care evaluează câteva funcţii simultan au tot atâtea ieşiri. În acest caz fiecare nod
cu gradul exterior 0 va fi considerat poarta de ieşire.
CAPITOLUL 1. CIRCUITE BOOLEENE 6
cu valori ı̂n {0, 1}. Spunem că un circuit C=(g1 , . . . , gk ) evaluează f dacă pentru
fiecare r, 1 ≤ r ≤ m, există un s, 1 ≤ s ≤ k, astfel ı̂ncât fr =rez(gs ).
Astfel, un circuit evaluează o astfel de funcţie dacă fiecare dintre componen-
tele funcţiei este rezultatul a unei porţi/surse a circuitului. De exemplu:
Exemplu 1 Fie funcţia booleană f definită pe {0, 1}4 cu valori ı̂n {0, 1}3 reprezen-
tată de tripletul (f1 , f2 , f3 ), unde
f1 (x1 , x2 , x3 , x4 ) = x1 ∧ (x2 ∨ x3 )
f2 (x1 , x2 , x3 , x4 ) = ¬(x2 ∨ x3 ) ∨ (x4 ∧ 0)
f3 (x1 , x2 , x3 , x4 ) = f2 ∧ 0
Definiţie 9 Conform lui [1] o familie de circuite este o secvenţă {Cn }n∈N de cir-
cuite booleene de mărime T(n), T : N → N, unde Cn are n intrări şi o singură
ieşire astfel ı̂ncât |Cn | ≤T(n) ∀ n.
6
Definiţie 11 Spunem că o funcţie f are complexitatea Z(n) dacă este calculabilă
de o familie de circuite de complexitate Z(n). Analogic f are o adâncime D(n)
dacă f este calculabilă de o familie de circuite cu o adâncime D(n).
5
k depinde de n.
6
Complexitatea unei familii de circuite oferă o imaginea asupra mărimii acestuia, notată Z(n)
cât şi a adâncimii lui, notată D(n).
CAPITOLUL 1. CIRCUITE BOOLEENE 8
lungime n,cA (n), ca şi costul funcţiei caracteristice a lui A∩{0,1}∗ pentru ∀ n dat;
definim adâncimea lui A de lungime n, dA (n), ca adâncime booleană a celeiaşi
funcţii. Observăm că atât cA cât şi dA depind de A. Astfel numim funcţia cA
complexitatea circuitului lui A şi dA - adâncimea lui A.
În cele ce urmează vom ı̂ncerca să referim complexitatea circuitului şi adâncimea
circuitului la complexitatea spaţiu şi timp ale maşinii Turnig. Pentru aceasta tre-
buie să codificăm configuraţiile MT ı̂n termenii unor funcţii boolene.
Fie o MT deterministă cu o bandă, cu alfabetul Σ = {a1 , . . . , an }, mulţimea
stărilor Q={q1 , . . . , qm } şi δ - funcţia de tranziţie. Fie r = |log|Q|||+1, r’=|log|Σ||+
1. Vom codifica fiecare stare a lui Q ı̂n binar ca o secvenţă de r biţi, excluzând
secvenţa 0r . Similar codificăm fiecare simbol al alfabetului ı̂n binar ı̂ntr-o secvenţă
0
de r’ biţi excluzând secvenţa 0r .
La fiecare pas t, asociem fiecărei celule u a lui M o reprezentare a parametrilor
săi: conţinutul celulei, dacă a ajuns capul de citire pe u, şi ı̂n cazul ı̂n care a ajuns
pe u, starea lui M la acel moment. Aceasta reprezentare este dată de perechea
ut = hst , xt i, s se numeşte parte stare si este definit după cum urmează:
0r dacă capul de citire nu a ajuns pe u la timpul t
st =
g dacă la timpul t, capul este in celula u şi starea q
i i
unde q’ este următoarea stare indicată de funcţia tranziţie δ(q, x). (0r , x) =
(0r , 0r , 0r ).
Observăm că partea stare a lui u2 la timpul t+1 este una din valorile l-
stare(u3 ), m-stare(u2 ), r-stare(u1 ) la timpul t, valorile corespunzând celor trei
cazuri.
0 0
Funcţia simbol:{0, 1}r+r → {0, 1}r calculează simbolul următor pentru a fi
scris ı̂ntr-o celulă şi este definită: simbol(0r , x)=x; simbol(q, x) reprezintă simbolul
scris peste x de M ı̂n starea q conform funcţiei de tranziţie δ(q, x).
15
Familiile de circuite de tip “table look-up” in demonstratia teoremei anterioare au
complexitatea 2 ( ) si complexitatea de adancime ( ). Aceste familii nu reflecta
complexitatea de decidere a limbajului deoarece presupun cunoasterea de siruri de caractere care
apartin sau nu unui anumit limbaj.
Un circuit poate fi obtinut pentru a caracteriza stoparea calculului unei masini paralele ,
stabilind partea de hardware a lui care este implicata in calcul. In timpul de stabilire a partii de
hardware, ciclurile pot fi evitate prin derularea hardware-ului. Adancimea unui astfel de circuit
ofera o masura de timp pe care calculul o cere si dimensiunea circuitelor ofera o limita
superioara pe spatiul de calcul necesar.
Circuitul din figura 7.4.2(b) calculeaza functia pe care hardware-ul din figura 7.4.2(a) o
calculeaza in 3 unitati de timp. Se presupune initial ca fiecare intrare la o poarta este fie o valoare
de intrare, fie constanta 0.
16
Intr-un mod similar, se poate obtine de asemenea, un circuit care corespunde tuturor
calculelor de stopare a lui cu cazuri de lungime , ≥ 0. (Iesirile pentru intrarile cu o
lungime data se presupun a fi anexate de catre un sir de forma 10 … 0 pentru a le permite sa
aiba lungimei identice). In consecinta, abordarea implica o familie = (c0, c1, c2, … ) de circuite
pentru fiecare masina paralela care opreste toate intrarile. Mai mult, familiile de circuite
reflecta fidel complexitatea calculelor paralele si pot fi efectiv obtinute de la fiecare o astfel de
masina paralela .
17
Constructorii de circuite cu astfel de caracteristici se spune ca sunt constructori de circuite
uniforme. O familie = (c0, c1, c2, … ) de circuite se spune ca este uniforma, daca constructorul
de circuite uniform poate calcula functia {(1n, cn )| ≥ 0}.
Un traductor Turing este declarat ca fiind un constructor de circuite uniforme daca acesta
este un spatiu delimitat ( ( )) traductorul determinist Turing care calculeaza
{(1n, cn )| ≥ 0}, unde = (c0, c1, c2, … ) este o familie de circuite de marimea complexitatii
( ). O familie = (c0, c1, c2, … ) de circuite cu complexitatea ( ) se spune ca este o familie
de circuite uniforme daca pentru un spatiu delimitat ( ( )), traductorul determinist poate
calcula {(1n, cn )| ≥ 0}.
este decis de circuitul n in figura 7.4.3(a) in cazul in care = 0, este un intreg nenul, de catre
n in fig 7.4.3(b) si n este un intreg impar, de catre Cn in figura 7.4.3(c).
18
Familia ( , , , … ) a circuitului are o complexitate “profunda” ( ) = ( ) si
dimensiunea complexitatii ( ) = ( /2 + /4 + + 1) = ( ). Familia este uniforma
n
deoarece functia { (1 , cn)| >= 0 } este calculabila prin l ( ) = ( ) spatiu
delimitat, traductor Turing determinist.
Urmatoarele teze pentru calculele paralele sunt exprimate in termeni de familii uniforme
de circuite ca si in tezele anterioare pentru calculele secventiale si probabilistice, doar dovezile
de sustinere pot fi furnizate pentru a expune corectitudinea tezei.
19
2.2 Familii uniforme de circuite si calcul secvential
2.2.4 Subcircuitul
2.2.7 _ , _ si
Dimensiunea circuitelor este o resursa majora pentru calculul paralel, la fel cum este
timpul pentru calculul secvential. Teorema urmatoare arata ca aceste doua tipuri de resurse
sunt conexe/legate polinomial.
20
Teorema 1. Daca log ( ( )) este un spatiu constructibil complet, atunci
_ ( ) = _ _ ( ( ))
_ ( ) ⊆ _ _ ( ( ))
a) Modifica fiecare regula de tranzitie care nu ofera o iesire unei reguli ce ofera iesirea .
b) Scoateti normele de tranzitie care provin de la statele de acceptare, convertiti statele de
acceptare in state nonaccepting, adaugati un nou stat nonaccepting si adaugati noi reguli
de tranzitie care-l forteaza pe sa treaca de la vechile state de acceptare la noul stat de
acceptare, in timp ce scrie simbolul .
c) Pentru fiecare stare , simbolul de input si simbolurile auziliare de lucru-banda,
,…,
21
2.2.3 Un circuit pentru simularea lui
22
Figura 7.5.1 Un circuit c care transforma functia printr-un traductor de restructurare
determinanta in secvente de lungime .
este un subcircuit care deriveaza configuratia initiala ( . . , 0 ℎ)
23
de la configuratia −1
a lui .
este un subcircuit care extrage outputul ,…, pe care are cea de-a ℎ
configurare.
face asta prin eliminarea simbolurilor care nu sunt in Δ ∪ { , }, de exemplu,
utilizand porti .
2.2.4 Subcircuitul
24
_ determina prefixul ( , , ,..., ) legii de tranzitie de
la – 1 prima configurare a lui .
_ determina sufixul ( , , , ,..., , , ) de la ( , , ,..., ).
MOVE utilizeaza componentul pentru a face modificarile necesare ale
– 1 prima configuratie a .
_ are un component FINDER , 0 ≤ ≤ , corespunzand fiecaruia din
non-outputurile (vezi Figura 7.5.3).
FINDER determina simbolul care este sub capul bezii ith a lui . FINDER foloseste un
subcircuit LOCAL_FINDER pentru fiecare pereche de simboluri consecutive in partea
configuratiei care corespunde benzii ith a lui . LOCAL_FINDER arata simbolul daca
corespunde unei perechi a formei. Altfel, outputul subcircuitului LOCAL_FINDER este doar 0.
25
contine un component TAPE _MODIFIER i pentru fiecare din benzile non-
output i ale traductorului ,0 ≤ ≤ (vezi Figura 7.5.4).
26
2.2.5 Constructorul unui circuit uniform
27
28
Figura 7.5.5 (a) Traductor de restructurare. (b) Subcircuitul corespunzator . (c) Subcircuitul
corespunzator _ . (d) Subcircuitul corespunzator _ .
In acest caz, t = 4. Subcircuitul este dat in Figura7.5.5(b), subcircuitul
P _ este dat in Figura 7.5.5(c), si subcircuitul _ este dat in
Figura 7.5.5(d).
29
In sfarsit, M determina care noduri ale cn sunt nodurile de output, si scrie valorile lor.
Prin Teorema 7.5.1, timpul de calcul secvential si marimea familiilor uniforme de circuite sunt in
legatura polinominala.
Corolar 1. O problema este rezolvabila in timp polinominal daca si numai daca este rezolvabila
de o familie uniforma de circuite cu complexitate de marime polinominala.
2.2.7 _ , _ si
Calculele secventiale sunt considerate fezabile numai daca sunt limitate in timp
polinominal. In mod similar, familiile de circuite sunt considerate fezabile numai daca au
marime limitata polinominala. Ca un rezultat, paralelismul pare sa nu aiba o influenta majora in
problemele ce nu pot fi rezolvate in timp polinominal.
30
Teorema 2. contine o problema nedecidabila.
Demonstratie : Orice limbaj unar peste alfabetul {1} poate fi decis de o familie =
( , , , . . ) de circuite de o complexitate de marime polinominala simultana si complexitate
profunda logaritmica. La obiect, fiecare in este un circuit care returneaza 1 la un anume
input ,…, daca si numai daca ,…, = 1 si 1 este in .
Cu toate astea, o demonstratie prin diagonalizare implica ca categoria problemei este de
indecizie pentru limbajul unar e { 1 | 1 }.
` Prin Corolarul 1, definitiile de mai sus si urmatoarea Lema, ierarhia aratata in figura
7.5.6 este valabila .
Lema 3. ⊆ _ .
32
Figura 7.5.7 Un circuit ce corespunde unui spatiu limitat ( ).
33
Bibliografie
34