Sunteți pe pagina 1din 34

Ministerul Educaţiei, Cercetării, Tineretului şi Sportului

Universitatea din Bucureşti


Facultatea de Matematică şi Informatică

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

1.1 Un circuit boolean . . . . . . . . . . . . . . . . . . . . . . . . . . . 7


1.2 Verificator de paritate [3] . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 Un circuit cu nodurile enumerate . . . . . . . . . . . . . . . . . . . 9
1.4 Tabel cu simbolurile porţilor . . . . . . . . . . . . . . . . . . . . . . 10
1.5 Un circuit care simulează o maşină Turing . . . . . . . . . . . . . . 12

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.

Definiţie 1 Fie mulţimea ∆ = {x1 , x2 , . . . , xn } cu n variabile booleene. Un lanţ


computaţional peste ∆ este o secvenţă g1 , g2 , . . . , gk unde fiecare gj este fie un
element al lui ∆, fie o constantă booleană, fie o pereche de forma (¬, gl ) pentru
1 ≤ l < j, fie un triplet (∧, gl , gm ) pentru 1 ≤ l, m < j sau un triplet (∨, gl , gm )
pentru 1 ≤ l, m < j.

Definiţie 2 Elementele unui lanţ computaţional peste ∆ alcătuit dintr-o variabilă


a mulţimii sau dintr-o constantă booleană se numesc elemente sursă. Restul ele-
mentelor se numesc elemente computaţionale (computational elements) sau porţi.
Intrările pentru o poartă sunt elementele (unul sau două) mai mici ale lanţului
care apar ı̂n gi .

Fiecărui element al unui lanţ computaţional peste o mulţime ∆ = {x1 , . . . , xn }


putem asocia o funcţie, rez(gi ) care reprezintă valoarea booleană calculată pentru
elemntul gi . Este definită după cum urmează:

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;

2. toate nodurile grafului au gradul interior1 egal cu 0, 1 sau 2;

3. fiecare poartă i ∈ V are asociată o funcţie s(i) ∈ {true, f alse, ∨, ∧, ¬} ∪


{x1 , x2 , . . .}. Gradul interior este 02 , dacă s(i) ∈ {true, f alse}∪{x1 , x2 , . . .}.
Cand s(i)=¬, gradul interior al lui i este 1; dacă s(i) ∈ {∨, ∧} atunci gradul
interior al lui i va fi 2;

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

Figura 1.1 reprezintă un exemplu de circuit boolean care evaluează funcţia


booleană f descrisă anterior.
În cele mai multe cazuri, ne aşteptăm ca funcţia booleană pe care un circuit
o evaluează să aibă o singură componentă, adică o funcţie f definită pe {0, 1}n cu
valori ı̂n {0, 1}. În acest caz, poarta gi pentru care rez(gi )=f se numeşte ieşire a
circuitului sau folosim convenţia cum că ieşirea unui circuit C=(g1 , g2 , . . . , gk ) este
gk .

Definiţie 6 Complexitatea unui circuit combinaţional oferă o imagine asupra mărimii


circuitului, asupra efortului structural depus pentru realizarea lui. Dacă notăm cu
n numărul variabilelor de intrare, atunci vom nota cu S(n) (de la size) complexi-
tatea circuitului. Ea reprezintă, prin definiţie, numărul total al porţilor logice ale
circuitului.

Definiţie 7 Adâncimea circuitului reprezintă numărul maxim de nivele logice par-


curse de un semnal de la intrare până la ieşirea circuitului. Se notează de obicei
cu D(n), (de la depth). De obicei, un circuit realizat cu adâncime minimă tinde
spre o complexitate maximă şi invers. [2]

1.2 Familii de circuite


Definiţie 8 Fie C={c0 , c1 , c2 , . . .}. C se numeşte familie de circuite dacă cn
este un circuit cu n intrări (noduri de intrare) ∀n ≥ 0. Familia de circuite
CAPITOLUL 1. CIRCUITE BOOLEENE 7

Figura 1.1: Un circuit boolean

C={c0 , c1 , c2 , . . .} are o mărime (size) Z(n) dacă Z(n) ≥ mărimea lui cn ∀n ≥ 0.


Familia de circuite are o adâncime D(n) dacă D(n)≥ adâncimea lui cn ∀n ≥ 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.

Definiţie 10 Spunem că o familie de circuite C={c0 , c1 , c2 , . . .}evaluează (cal-


culează) o funcţie f:{0, 1}∗ →{0, 1}∗ dacă circuitul cn evaluează funcţia fn :{0,
1}n →{0, 1}k , ∀n ≥ 0 şi pentru kn ≥ 05 . Se presupune că fn este o funcţie care
satisface fn (x) = f (x) ∀ x ∈ {0, 1}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

Figura 1.2: Verificator de paritate [3]

Un limbaj L ∈ {0, 1}∗ este decidabil de o familie de circuite C dacă funcţia


lui caracteristică este calculabilă de C (f este funcţia caracteristică a lui L dacă
f(x)=1 ∀ x∈L şi f(x)=0 pentru ∀ x∈L).
/ Mărimea şi adâncimea limbajului sunt
egale cu mă rimea şi adâncimea funcţiei lui caracteristice.

Exemplu 2 Limbajul {a1 , . . . , an |a1 , . . . , an ∈ {0, 1} şi a1 , . . . , an conţine un număr


impar de 1} este decidabil de o familie de circuite ca ı̂n figura 2. Limbajul are
adâncimea O(log n) şi mărimea O(n/2+n/4+. . .+1)=O(n). [3]
CAPITOLUL 1. CIRCUITE BOOLEENE 9

1.3 Reprezentarea circuitelor


Presupunem că fiecare circuit c are o reprezentare după cum urmează. Aso-
ciem numărul 0 fiecărei constante 0 din c, numărul 1 fiecărei constante 1 din c,
numărul 2,. . ., n+1 pentru cele n intrări ale lui c. Asociem numere consecutive
pornind de la n+2 fiecărei porţi ai lui c. Atunci reprezentarea lui c este un string
de forma E(u1 ). . .E(um )F(v1 ). . .F(vk ). u1 . . . um sunt porţile lui c, v1 . . . vk
sunt ieşirile lui c. E(u) este egal cu (g, t, gL , gR ), unde g este un număr atribuit
porţii u, t este tipul lui u adică u ∈ (¬, ∧, ∨), gL şi gR sunt numerele atribuite ,
predecesorilor imediaţi ai lui u. În particular, gL = gR când t=¬. F(v) este egal
cu g, unde g este numărul atribuit porţii v.

Exemplu 3 Circuitul din figura 3 are următoarea reprezentare:


(4, ¬, 2, 2)(5, ∧, 1, 4)(6, ∧, 1, 3)(7, ∧, 2, 1)(8, ∧, 3, 1)(9, ∧, 5, 6)(10, ∧, 7, 8)
(11, ∨, 9, 10)(11)

Figura 1.3: Un circuit cu nodurile enumerate


CAPITOLUL 1. CIRCUITE BOOLEENE 10

In tabelul următor, 1.3, se prezintă simbolul, funcţia logică implementată


(denumire, relaţie booleană şi eventuale forme echivalente) şi tabela de adevăr
pentru porţile logice elementare NU, SI, SAU, SI-NU, SAU-NU şi SAU-EXCLUSIV
care prelucrează semnalele logice V(1) sau/şi V(2).

Figura 1.4: Tabel cu simbolurile porţilor

1.4 Maşinile Turnig şi Circuitele Booleene


circuitele boolene au un număr fix de intrări. Prin urmare cănd avem de-a
face cu un set de infinit de intrări (de exemplu {0,1}∗ ) trebuie să folosim un alt
circuit pentru fiecare set de intrări.

Definiţie 12 Fie A⊆{0,1}∗ . Definim complexitatea circuitului mulţimii A de


CAPITOLUL 1. CIRCUITE BOOLEENE 11

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

xi reprezintă partea simbol, care returnează conţinutul celulei u. Pe du-


rata calculului lui M, schimbările conţinutului celulelor benzilor depind doar de
conţinutul celulei ı̂nseşi şi de conţinutul celulelor din imediata apropiere (stânga
sau dreapta). Se consideră reprezentarea a 3 celule consecutive la timpul t:
ut1 , ut2 , ut3 .
Pentru a descrie aceste schimbări introducem două funcţii booleene ce descriu
schimbările a părcţii stare, respectiv părţii simbol; le numim ”stare” şi ”simbol”.
0
Funţia stare:{0, 1}r+r → {0, 1}3r



 (q 0 , 0r , 0r ) dacă capul de citire se mută la stânga

stare(q, x) = (0r , g 0 , 0r ) dacă capul de citire nu se mută qi


 (0r , 0r , 0r ) dacă capul de citire se mută la dreapta

CAPITOLUL 1. CIRCUITE BOOLEENE 12

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).

Figura 1.5: Un circuit care simulează o maşină Turing

Teoremă 1 Dacă A este acceptat de o MT deterministă cu o bandă ı̂n timpul


T(n) atunci cA (n)=O(T 2 (n)).
CAPITOLUL 1. CIRCUITE BOOLEENE 13

Demonstraţie 1 Fie M o maşină Turing cu p bandă care acceptă A ı̂n timp


T(n). Presupunem că M are(acceptă) doar o stare finală, qf , c si ı̂n momentul ı̂n
care ajunge ı̂n starea finală intră intr-o buclă infinită. Prin urmare, M va ajunge
in starea qf la timpul T(n) pentru şirurile de intrare pe care le acceptă.
Vom construi un circuit boolean care simulează evoluţia valorilor benzii lui
maşinii pentru cuvântul w ı̂n exact T(n) paşi. Pentru a accepta un cuvânt, cir-
cuitul va testa dacă starea lui M este gf după pasul T(n). Vom folosi definiţiile
de mai sus pentru a calcula conţinutul celulelor benzii şi starea lui M la pasul t+1
(din conţinutul şi starea lui M la pasul t). Circuitul ca arăta ca in figura 1.4, unde
fiecare casetă reprezintă o copie a calcului părţii stare şi părti̧i simbol a celulei
circuitului.
Caseta de pe rândul t, coloana i, 0 ≤ i, t < T (n), calculează conţinutul
celulei i a benzii la timpul t (partea simbol) ı̂mpreună cu un indice ce specifică
dacă a ajuns capul de citire in celula i la timpul t; dacă se află ı̂n celulă, calculează
starea q a lui M la timpul t (partea stare).
Partea stare a lui uj la timpul t+1 se calculează prin disjuncţia rezultatelor
funcţiilor l-stare şi r-stare aplicate celulelor vecine ui−1 şi ui+1 , la timpul t şi rezul-
tatul funcţiei m-stare a celulei ui la timpul t. Partea simbol se calculează direct
folosint funcţia simbol(q, x).
Dacă M acceptă w, atunci M ajunge in starea qf ı̂n cel mult T(n) paşi aşa că
maşina Turing va avea capul de citire ı̂n cel mult celula T(n)+1. Aşadar circuitul
are T(n)+1 coloane, fiecare corespunzând unei celule.
Fiecare rând corespunde unei configuraţii. Circuitul are T(n) rânduri. Fie q1
stare iniţială, xi simbolul de pe poziţia i a cuvântului şi B simbolul blank. Atunci
intrările pentru rândul 1 sunt definite de u0 = (q1 , x1 ), ui = (0r , xi )pentru1 ≤ i ≤ n
şi ui = (0r , B) pentru alte valori ale lui i.
Pe ultimul rând, exact o casetă va conţine stare ı̂n care M se opreşte la timpul
T(n). Celulele rămase nu conţin informaţii ale funcţiei m-stare, adică doar valori
0r . Aşadar circuitul poate găsi starea prin disjunţie binară a rezultatelor funcţiilor
m-stare şi compararea lor cu valoarea cunoscută a stării qf , ceea ce ı̂nseamnă un
circuit de echivaleţă care constă in conjuncţia rezultatelor egalităţii binare. Acest
CAPITOLUL 1. CIRCUITE BOOLEENE 14

rezultat reprezintă poarta de ieşire a circuitului.


Fiecare casetă simuleaza calcule de cost O(1), disjuncţia binară poate fi cal-
culată de un arbore de cost O(T(n)), iar calcului echivalenţei are cost O(1). Prin
urmare costul total al circuitului este O(T2 (n)).
2.1.Familii uniforme de circuite

2.1.1 Circuitele "Table Look-Up"

2.1.2 Circuitele "Unrolled Hardware"

2.1.3 Familiile uniforme ale circuitelor

2.1.1 Circuitele "Table Look-Up"

Familiile de circuite au fost introduse pentru a ajuta la caracterizarea resurselor necesare


problemelor de la masinile/aparatele paralele. Teorema urmatoare implica faptul ca familiile nu
pot servi ca scop in forma lor generala deoarece pot recunoaste limbaje care nu sunt recursiv
numarabile.

Teorema 1. Fiecare limbaj in {0,1} ∗ este decis de o familie de circuite.

Demonstratie Luati in considerare orice limbaj in {0,1} ∗ precum si orice numar


natural n. indica setul ∩ {0,1} . Asta inseamna ca reprezinta multimea tuturor sirurilor
binare de lungime in .

Pentru orice sir dat in , un subcircuit cu noduri de intrare poate fi construit


daca accepta un nod de intrare si doar daca acesta este egal cu . Limbajul este finit. Ca
rezultat, subcircuitul care corespunde sirurilor de caractere in , se pot uni lasandu-le sa
imparta nodurile de intrare si ordonand iesirile. Circuitul obtinut determina apartenenta in
a tehnicii “table look-up”.

Prin urmare, este decisă de familia ( , , , … )de circuite.

Circuitul in figura 7.4.1 decide limbajul = {001,100,101} de abordare table look-


up. Pentru fiecare sir in , circuitul are un subcircuit corespondent, care decide doar un
membru al sirului.

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.

2.1.2 Circuitele "Unrolled Hardware"

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 .

2.1.3 Familiile uniforme ale circuitelor

De la discutia anterioara, de la fiecare masina paralela care opreste toate intrarile, un


constructor de circuite poate fi obtinut pentru a calcula {(1n, cn )| ≥ 0}, unde =
(c0, c1, c2, … ) este o familie de circuite care calculeaza aceeasi functie ca . Constructorul de
circuite poate fi unul care ofera familii de tip “table look-up”, hardware derulate, sau alte tipuri
de circuite.

Interesul aici este in constructorii de circuite care pastreaza, in familiile de circuite pe


care le construiesc, complexitatea data de masinile paralele. Astfel de constructori nu permit
trecerea de complexitate de la familiile construite la constructori de circuite. Mai mult decât atat,
ele nu permit o crestere nerealista in complexitatea constructorilor de familii de circuite.

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}.

Multe caracterizari au fost oferite pentru constructorii de circuite uniforme.


Caracterizarea folosita aici, care a fost acceptata pe scara larga, defineste aceste conditii in
termeni ai unei clase de traductoare Turing deterministe (!).

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}.

Caracterizarea familiilor de circuite uniforme este motivata de abordarea hardwarelor


derulate. Cu o astfel de abordare constructorii de circuite necesita ( ( ) + ( )) =
( ( ( ) ( ))) spatiu, daca masina paralela are complexitatea ( ) si complexitatea de
timp ( ). Spatiul ( ℎ( )) este folosit pentru urmarirea in timp. ( ) ( ) este de o ordine
de marime similara cu masura ( ) a circuitelor.

Exemplul 1. Luati in considerare limbajul ={ | {0,1}*}. Luati Ln ∩ {0,1}n


pentru ≥ 0, L n reprezentând multimea tuturor sirurilor binare de lungime in . Limbajul n

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.

Teza de calcul paralel a functiei poate fi mecanic calculata de o masina paralela a


demensiunii complexitatii ( ) si a complexitatii de timp ( ) numai daca are o familie
uniforma de circuite de complexitae ( ( ) ( )) si de complexitate profunda pentru unele
polinoame (. ).

19
2.2 Familii uniforme de circuite si calcul secvential

2.2.1 De la timpul secvential la marimea circuitului

2.2.2 O versiune modificata a lui

2.2.3 Un circuit pentru simularea lui

2.2.4 Subcircuitul

2.2.5 Constructorul unui circuit uniform

2.2.6 De la marimea circuitului la timpul secvential

2.2.7 _ , _ si

2.2.8 Spatiul secvential si timpul paralel

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.

Notatii: In cele ce urmeaza _ ( ( )) va denota clasa de functii de calcul


( ( )) timp limitat, traductoare Turing deterministe. Clasa de funcţii cu dimensiunea de
complexitate _ ( ( )) va fi notată ( ( )). Clasa de limbi ale caror functii
caracteristice au marimea _ ( ( )) vor fi notate ( ( )). _ _ ( ( )) va
indica clasa functiilor calculate de familia uniforma a circuitelor cu marimea complexitatii
( ( )). Clasa de limbi straine a caror functie caracteristica este _ _ ( ( )) vor fi
notate _ ( ( )). _ _ ( ( )) va indica clasa functiilor evaluate de familiile
uniforme a carei adancime va avea complexitatea ( ( )) si clasa limbilor straine a caror
functii caracteristice se afla in _ _ ( ( )) vor fi notate _ ( ( )).
_ _ _ ( ( ), ( )) clasa functiilor evaluate de familiile uniforme de circuite
care au simultan complexitatea marimii ( ) si complexitatea adancimii ( ).

20
Teorema 1. Daca log ( ( )) este un spatiu constructibil complet, atunci

_ ( ) = _ _ ( ( ))

Demonstratia acestei teoreme se afla in cele doua leme de mai jos.

2.2.1 De la timpul secvential la marimea circuitului

Demonstratia primei leme consta in derularea hardware a traductoarelor Turing


determinste.

Lema 1. Daca log ( ( )) este un spatiu constructibil complet, atunci

_ ( ) ⊆ _ _ ( ( ))

Demonstratie : luam in cosiderare orice ( ) delimitate ca timp, traducatorul


determinist Turing =< , Σ, Γ, Δ, , , , > unde log ( ( )) este spatiu contructibil
complet.

Presupunem ca Σ = {0,1}. denota numarul benzilor auziliare de munca a lui .

2.2.2 O versiune modificata a lui

Presupunem ca Δ nu contine simbolurile si . Il vom modifica pe in urmatorul mod:

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

Un circuit c de forma urmatoare poate simula originalul de lungime , simuland


primul = 2⌈ ( ( ) ) ⌉ miscari ale modificat catre data de intrare.
Simularea de miscare a exact = 2⌈ ( ( ) )⌉
a lui , permite lui c sa genereze
outputuri de lungime identica pentru toate inputurile de lungime . O astfel de uniformitate in
lungimea outputurilor este necesara datorita rigiditatii circuitelor privind lungimea outputurilor.
Alegerea = 2⌈ ( ( ) )⌉
in loc de ( ) + 1 pentru numarul de miscari ale lui este facuta
sa permita valorii sa fie calculata doar prin marcarea spatiului de marime ( ( )).

c presupune reprezentare binara fixa a setului


Σ ∪ Γ ∪ Δ ∪ { , , ¢, $, − 1, 0, + 1, , . . . , } ∪ . Elementele setului pot fi reprezentate prin siruri de
caractere binare de lungime identica . , . . .
c consista in + 2 subcircuite, numite in continuare , ,..., , si
respectiv , (vezi Figura 7.5.1).

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 ℎ)

a lui in inputul dat ,..., .

utilizeaza valorile ,..., ale nodurilor inputului ,. . . , ; valorile unor noduri


constante 0; si valorile unor noduri constante 1 pentru a obtine configuratia dorita.

Subcircuitul , 1 ≤ ≤ deriva configuratia ℎ a lui

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

MOVE utilizeaza componente _ si _ pentru a


determina regula de tranzitie ( , , ,..., , , , , ,..., , , ) folosita de in
miscarea ℎ (vezi Figura 7.5.2).

Figura 7.5.2 Subcircuitul MOVE pentru simularea tranzitiei traductorului de restructurare


determinant intre doua configuratii.

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).

Figura 7.5.3 Un subcircuit _ pentru a determina o regula de tranzitie a


traductorului.

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.

Outputul fiecarui LOCAL_FINDER este determinat de un circuit de masa. Outputurile


tuturor LOCAL_FINDER sunt orientate sa obtina outputul dorit al FINDER .
LOCAL_FINDER in input ( , , ,..., ) utilizeaza o abordare sa ( , , , ,..., , , ).

25
contine un component TAPE _MODIFIER i pentru fiecare din benzile non-
output i ale traductorului ,0 ≤ ≤ (vezi Figura 7.5.4).

Figura 7.5.4 Un subcircuit pentru modificarea configurarii traductorului.

TAPE _MODIFIER contine un subcircuit _ pentru fiecare locatie


din configurarea construita a traductorului . Un _ care corespunde
locatiei primeste cele 3 simboluri , , si ca inputuri in locatiile − 1, , si + 1 in
configurarea lui care este modificata. (Singura exceptioe apare cand locatia ℎ este o locatie
limitata.
Intr-un astfel de caz, _ primeste doar 2 valori de input.)
In plus, _ primeste ca input modificarile (c si d ) care trebuie facute in
banda ith a lui . _ emite simbolul ′ pentru a jth in configuratia
construita a lui M.

26
2.2.5 Constructorul unui circuit uniform

are marimea 0. Fiecare FINDER contine ( ( )) subcircuite _FINDER si


un numar constant de subcircuite OR. Fiecare _FINDER are marime constanta. Fiecare
subcircuit OR are marimea ( ( )).

Atunci, _ are marimea ( ( )). _ are marime


constanta, si _ are marimea ( ( )). In consecinta, are marimea
( 2( )).
Intr-un spatiu limitat ( ( )), traductorul poate fi construit pentru a calcula
{ (1 , )| ≥ 0 } intr-o maniera forta-bruta.

Exemplul 2. Fie un traductor de banda auxiliara in figura 7.5.5(a).


are complexitatea de timp ( ) = + 1. De dragul exemplului lasa-l pe M asa cum este,
fara modificari. Folosind terminologia din Lemma 7.5.1, = { , ,..., }, Σ = Δ = {0, 1},
Γ = {0, 1, }, = 1, si = 4. Alege urmatoarea reprezentare binara E: (0) = 0000,
(1) = 0001, (¢) = 0010, ($) = 0011, ( ) = 0100, ( ) = 0101, ( ) = 0110,
( [0]) = 0111, ([1] ) = 1000, ( 0) = 1001, ( ) = 1010, ( ) = 1011,
( ) = 1100, ( ) = 1101, (−1) = 1110, (+1) = 1111.
Alege = 3.

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).

2.2.6 De la marimea circuitului la timpul secvential

Lema anterioara reglementeaza aplicarea paralelismului pentru simularea calculelor


secventiala. Lema urmatoare reglementeaza simularea calculelor paralele prin calculi
secventiale.

Lema 2. _ _ ( ( )) ⊆ ⋃ ≥0DTIME _ ( ( )).

Demonstratie Considera orice functie ( ), si orice familie uniforma de circuite =


( , , , . . . ) de marime si complexitate Z(n). Fie X un spatiu limitat ( ( )), traductor ce
calculeaza functia { (1 , )| ≥ 0 }. Un traductor poate calcula aceeasi functie ca in
felul urmator.
Fie un input dat a1…an, M foloseste X sa determine reprezentarea circuitului c n.
Reprezentarea poate fi gasita in 2O(log Z(n)) = ZO(1)(n) pentru ca X este un spatiu limitat O(log
Z(n)) (vezi Teorema 5.5.1). In plus, reprezentarea are lungimea O(Z(n)log Z(n)) pentru ca cn are
atatea porti Z(n), si fiecare poarta (g, t, gL, g R) are o reprezentare de lungime O(log Z(n)).
Avand reprezentarea lui cn, traductorul M evalueaza outputul fiecarui nod in cn.
M face asta prin scanarea repetata a reprezentarii c n pentru cvadruplii (g, t, gL, gR ), care
corespund nodurilor gL si gR, pentru care valorile outputurilor sunt deja cunoscute. Prin gasirea
unui asemenea cvadruplu (g, t, gL, gR), traductorul M evalueaza si de asemenea inregistreaza
valorile outputului pentru g.
Dupa cel putin Z(n) iteratii, M determina valorile outputului pentru toate nodurile in cn.

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.

Pe de alta parte, pentru acele problem ce pot fi rezolvate in timp polinominal,


paralelismul are o importanta covarsitoare pentru ca el poate creste semnificativ viteza de calcul.
O astfel de categorie de problem este aceea care pot fi rezolvate de catre familii uniforme de
circuite, navand simultan complexitate de marime polinominala si polylog (i.e., O(login) pentru i
0) complexitate de adancime.
Aceasta categorie de problem este U_FNC .
Subclasa lui U_FNC, care este obtinuta prin restrictionarea complexitatii de adancime a
familiilor de circuite la O(login), este U_FNC i. TSubclasa problemelor de decizie in _ is
este _ .
Subclasa problemelor de decizie in _ este _ .
arata clasele de problem rezolvabile familiile de circuite care in mod simultan au
complexitate de marime polinominala si complexitate de adancime polylog. Subclasa de problem
de decizie in este numita . Subclasa din , obtinuta prin restrictionarea familiilor de
circuite catre complexitate profunda ( ), este numita . si numeste clasa
problemelor de decizie in .
Pentru familiile de circuite neuniforme exista urmatoarele constrangeri:

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 }.

2.2.8 Spatiul secvential si timpul paralel

` Prin Corolarul 1, definitiile de mai sus si urmatoarea Lema, ierarhia aratata in figura
7.5.6 este valabila .

Figura 7.5.6 Ierarhia problemelor de decizie intre .

Lema 3. ⊆ _ .

Demonstratie Consideram oricare spatiu limitat ( ) = ( ), nondeterminant unde


= < , Σ, Γ, , , , > cu benzi de lucru auxiliare. Fara nicio pierdere de generalitate
asumam ca Σ = {0, 1}. Fie un tuplu = ( , , , , ,..., , ) numit configurare partiala
in input ,…, ; daca M are o configurare ( , ,..., ) cu =
¢ .. $ si | | = . Fie o configurare partial numita configurare partial initiala daca
31
corespunde unei configurari initiale . Fie ca o configurare partial sa fie numita o configurare
partial acceptanta daca corespunde unei configurari acceptante.
Fiecare configurare partial a lui cere un spatiu ( ). Numarul al configurarilor
( )
partiale ,..., pe care le are in setul de inputuri de lungime n satisfac = 2 =
( ).

Sa zicem ca poate atinge in mod direct configurarea partiala ′ din configurarea


partiala daca si ′ corespund unor configuratii Ω si Ω ale , astfel incat Ω ⊢ Ω .
Spunem ca poate atinge configurarea partiala ′ din configurarea partiala daca si
′ corespund unor configurari Ω si Ω ale , astfel incat Ω ⊢∗ Ω .
Pentru n dat, limbajul ( ) ∩ {0, 1} este decis de un circuit cn ce consista in ⌈ ⌉+
2 subcircuite, adica , si ⌈ ⌉ copii ale (Figura 7.5.7).

32
Figura 7.5.7 Un circuit ce corespunde unui spatiu limitat ( ).

Structura lui se bazeaza pe observatia ca masina de restructurare accepta un input


dat … si daca si numai daca are o configurare partiala … in inputul … , astfel
incat este o configurare partial initiala, este o configurare partial acceptanta si M poate
atinge direct din pentru 1 ≤ ≤ .
are o componenta pentru fiecare pereche posibila ( , ) ale
configurarilor distinct partiale ale lui in inputurile de lungime n. are outputul 1
pentru un input dat … si daca atat cat si sunt configurari partiale ale lui in inputul
… , si poate atinge direct din . Altfel, are output 0.

33
Bibliografie

[1] ARORA, Sanjeev, BARAK, Boaz: Computational Complexity:


A Modern Aproach, ediţie online - draft Princeton University,
2006

[2] BALCAZAR, Jose Luis, DIAZ, Josep, GABARO, Joaquim: The


Structural Aproach to a Complexity Theory, Springer-Verlag,
1988

[3] GURARI, Eitan: An introduction to the Theory of Computa-


tion,Computer Science Press, Ohio, 1989

[4] PAPADIMITRIOU, Christos: Computational Complexity,


Addison-Wesley Publ. Co., Reading Massachusetts, 1994

[5] SIPSER, Michael: Introduction to the Theory of Computation,


Second Edition, Thomson Course Technology, Boston, Mas-
sachusetts, 2008

34

S-ar putea să vă placă și