Documente Academic
Documente Profesional
Documente Cultură
Cuprins
Bibliografie ........................................................................................................................ 2
Introducere ....................................................................................................................... 4
1. Teza Church-Turing ..................................................................................................... 6
1.1. Maşina Turing (MT) ............................................................................................... 6
1.2. Maşini Turing cu mai multe benzi .........................................................................12
1.3. Maşini Turing nedeterministe ...............................................................................13
1.4. Echivalenţa modelelor de calculabilitate ...............................................................14
1.5. Algoritm: o definiţie...............................................................................................14
Rezumat ......................................................................................................................15
2. Decidabilitate ..............................................................................................................16
2.1. Probleme decidabile privind limbajele regulate .....................................................16
2.2. Probleme decidabile privind limbajele independente de context ...........................18
3. Nedecidabilitate: problema opririi ................................................................................21
3.1. Un limbaj care nu este Turing-decidabil (nu este recursiv) ...................................21
3.2. Un limbaj care nu este recunoscut de o maşină Turing (nu este recursiv
enumerabil) ..................................................................................................................23
3.3. Problema opririi ....................................................................................................24
3.4. Funcţii calculabile; reductibilitate funcţională ........................................................27
3.4.1. Funcţii calculabile ..........................................................................................27
3.4.2. Definiţia formală a reducerii funcţionale .........................................................27
Rezumat ......................................................................................................................29
4. Clasa de complexitate TIMP ......................................................................................30
4.1. Terminologie ........................................................................................................30
4.2. Notaţia asimptotică...............................................................................................31
4.3. Analiza algoritmilor ...............................................................................................33
4.4. Complexitatea modelelor de calculabilitate...........................................................35
4.5. Clasa P ...............................................................................................................39
4.5.1. Timpul polinomial ..........................................................................................39
4.5.2. Exemple de probleme cu timp de calcul polinomial .......................................41
4.6. Clasa NP .............................................................................................................42
4.6.1. Exemple de probleme cu timp de calcul polinomial nedeterminist .............45
4.7. Problema P versus NP ......................................................................................46
4.8. NP-completitudine ................................................................................................48
4.8.1. Importanţa fenomenului .................................................................................48
4.8.2. Un exemplu de problemă NP-completă .........................................................48
Rezumat ......................................................................................................................49
5. Clasa de complexitate SPATIU ..................................................................................50
5.1. Definiţii şi exemple introductive ............................................................................50
5.2. Teorema lui Savitch .............................................................................................52
5.3. Clasele PSPACE şi NPSPACE ............................................................................54
5.4. PSPACE-completitudine ......................................................................................56
5.4.1. Problema TQBF .............................................................................................56
5.4.2. Alte probleme PSPACE-complete ..................................................................57
5.5. Clasele L şi NL ..................................................................................................58
5.6. NL-completitudine ................................................................................................60
Rezumat ......................................................................................................................62
1
Bibliografie
1. Alfred AHO, John E HOPCROFT, Jeffrey D. ULLMAN: The Design and Analysis of
Computer Algorithms, Addison-Wesley Publ. Co., Reading Mass., 1974, II
24220, II 37734 (Cap.1: “Models of Computation: pp 2-35: Masini RAM şi
masini Turing; HORNER RULE: p. 21).
2. Walter S. BRAINERD, Lawrence H. LANDWEBER: Theory of Computation, John
Wiley & Sons Inc., New York, 1974, II 24912 (History, Representation of data,
Recursive functions, Markov algorithms, Formal languages, Complexity of
computation).
3. Cristian Sorin CALUDE: Complexitatea calculului; aspecte calitative, Editura
Stiinţifică şi Enciclopedica, Bucureşti, 1982 (cota??).
4. Cristian Sorin CALUDE: Theories of Computational Complexity, Elsevier Science
Publ., Amsterdam, 1988, II 34948.
5. Daniel I. A. COHEN: Introduction to Computation Theory, 2nd Ed., John Wiley & Sons
Inc., New York, 1997, II 39568 (Languages, Regular Expressions, Automata,
TM, Decidability).
6. Thomas H. CORMEN, Charles E. LEISERSON, Ronald L. RIVEST: Algorithms, MIT
Press, 1990-2000: 24 printings, II 39751 (notaţia O, , ; NP-completitudine).
7. Nigel J. CUTLAND: Computability: An Introduction to Recursive Function Theory,
Cambridge Univ. Press, Cambridge, 1986, II 37289 (Computable functions,
Church Thesis, s-m-n theorem, Universal programs, Decidability, Godel
arithmetic, Recursive sets, Complexity of computation – speed-up theorem).
8. Martin D. DAVIES, Elaine WEYUKER: Computability, Complexity, and Languages,
Academic Press, Orlando, Fl., 1983, II 33413 (TM, Primitive recursive
functions, Universal programs, Computations on strings, Grammars, Abstract
complexity, Polynomial time computability, P=NP, Unsolvability).
9. Peter J. DENNING, Jack B. DENNIS, Joseph E. QUALITZ: Machines, Languages
and Computation, Prentice Hall Inc. Englewood Cliffs, NJ, 1978, II 27675 (TM
universala, Teza lui Church, Unsolvable problems, Fctii recursive, Sisteme
Post).
10. Cristian GIUMALE: Introducere în analiza algoritmilor; Teorie şi aplicaţii, Editura
Polirom, Iaşi, 2004 II 40105 (notaţia O, , ; clase de complexitate, clase de
algoritmi).
11. Richard JOHNSONBAUGH, Marcus SCHAEFER: Algorithms, Pearson Prentice Hall,
Upper Saddle River, NJ., 2004, II 40112 (structuri d edate, metode de
programare, masuri de complexitate şi notatii de complexitate, P versus NP)
12. Carlos MARTĺN-VIDE, Victor MITRANA, Gheorghe PĂUN (Eds.): Formal
Languages and Applications, Springer-Verlag, Berlin Heidelberg, 2004, II
40157.
13. Christos H. PAPADIMITRIOU: Computational Complexity, Addison-Wesley Publ. Co.,
Reading Mass., 1994.
14. Gheorghe PĂUN, Grzegorz ROZENBERG, Aarto SALOMAA (Eds.): Current Trends
in Theoretical Computer Science, World Scientific Publ. Co., Singapore, 2001,
II 39698 (Computational complexity, Formal language theory).
15. Grzegorz ROZENBERG, Aarto SALOMAA (Eds.): Handbook of Formal Languages,
3 vols., Springer-Verlag, Berlin Heidelberg, 1997, II 39019 (vol. 1: Cap.1:
Formal languages: an introduction and a synopsis (history); Cap.2: Regular
languages; Cap.3: CFL and pushdown automata; vol. 2: Cap.1: Complexity: a
language-theoretic point of view; Cap.2: Parsing of CFL).
2
16. Michael SIPSER: Introduction to the Theory of Computation, PWS Publ. Co. –
International Thomson Publ. Inc., Boston, Ma., 1997.
17. Marius ZIMAND: Computational Complexity: A Quantitative Perspective, Elsevier
B.V., Amsterdam, 2004, II 40110 (Complexity classes gap and compression,
speed-up, P,NP,E 3-SAT, Quantum computation, Hard function, Optimization
problems minimization/maximization problems).
3
Introducere
Introducere1
Cursul îşi propune să răspundă la înterbarea:
Această întrebare datează din anii 1930, când logicienii şi matematicienii au început să
studieze obicetele matematice, în particular noţiunea de CALCULABILITATE. Progresele
tehnologice ulterioare au extins problema din sfera teoretică în cea practică.
Răspunsul la această intrebare îmbracă mai multe forme, în funcţie de domeniile în care
este împărţită teoria calculului:
a) automate;
b) calculabilitate propriu-zisă;
c) complexitate.
Vom examina aceste domenii în ordinea înversă enumerării pentru că examinând finalul
înţelegem mai bine motivaţia debutului.
Observaţie 1: terminologie
Probleme: (ne)rezolvabile;
Funcţii: (ne)calculabile;
Limbaje: (ne)decidabile.
c) Teoria complexităţii:
Problemele au grade variate de “dificultate”:
i) problema sortării: uşoară: orice calculator (slab) poate sorta destul de rapid mulţimi de
numere a căror cardinalitate este chiar de ordinul milioanelor;
ii) problema orarului: grea: chiar un supercalculator are nevoie de secole pentru a găsi o
planificare optimă pentru un număr de numai 1000 de cursuri.
1 MS
2 O chestiune de metodică: Tratarea unei probleme dificile poate fi simplificată astfel:
(1) înţelegem (descoperim) aspectul care o face dificil de rezolvat şi – eventual – îl îndepărtăm sau
îl atenuăm;
(2) ne mulţumim cu o soluţie nu tocmai optimă (gsirea unei soluţii aproximative este adesea destul
de simplă);
(3) unele probleme sunt dificile numai în cazul cel mai nefavorabil, în rest fiind destul de simple;
uneori putem fi mulţumiţi cu astfel de soluţii;
(4) putem recurge la alte tipuri de calculabilitate, înafara celei deterministe (calculabilitate
nedeterministă, calculabilitate AND etc.)
4
Introducere
b) Teoria calculabilităţii
În prima jumătate a secolului XX, mai mulţi matematicieni precum Kurt Gödel, Alan
Turing, Alonzo Church (Stephen Kleene, Emile Post, N.N. Markov), au descoperit că
unele probleme FUNDAMENTALE NU pot fi rezolvate de către calculatoare: stabilirea
adevărului sau falsităţii unui enunţ matematic (nu există un algoritm care să dea acest
răspuns pentru orice enunţ matematic).
a) Teoria automatelor
se ocupă cu definiţiile şi proprietăţile modelelor matematice de calculabilitate:
automatul finit (utilizat în procesarea textelor, scrierea compilatoarelor, proiectarea
hardware etc.)
gramatica independentă de context (utilizată în limbajele de programare,
inteligenţa artificială etc.);
definiţii formale pentru conceptul de calculabilitate şi noţiunea de calcualtor;
oferă
posibilitatea de a jongla cu acestea;
introduce concepte relevante şi pentru alte domenii –neteoretice – ale informaticii.
este un punct de plecare excelent pentru studierea teoriei calculabilităţii.
3
Emil Leon POST (1897 – 1954): matematician de origine poloneza, profesor la City College of
New York. În teza sa de doctorat, sustinuta în 1920, Post a demonstrat completitudinea şi
noncontradictia calculului cu propoziţii – descris de B. Russell şi A.N. Whitehead în „Principia
Mathematica” – folosind pentru prima dată metoda tabelelor de adevar. Este considerat părintele
teoriei demonstraţiei, un precursor al lui Kurt Gödel (prin lucrarile sale privind multimile recursiv
enumerabile, gradele de nedecidabilitate) şi John von Neumann (printr-un model matematic de
masina de calcul foarte asemanator celui descris de von Neumann în celebrul sau articol din
1946).
5
Teza Church-Turing
1. Teza Church-Turing4
Teoria complexităţii încearcă să demostreze ca anumite probleme sut mai complexe
decât altele. Termenul “complex” înseamnă aici cantitatea de resurse de calcul (in general
timp de lucru şi spaţiu de memorie, dar de multe ori şi alţi parametri) necesare pentru
rezolvarea respectivei probleme. Se pot defini clase sintetice de complexitate care pot fi
apoi populate cu probleme de calculabilitate bine cunoscute din lumea reală. Teoria
complexităţii se ocupă cu stabilirea şi demonstrarea relaţiilor existente între aceste clase
(de obicei, relaţii de incluziune, strictă sau estrictă). Astfel, dacă stabilim care este cea
mai mică clase din care face parte o problemă căpătăm implicit o serie întreagă de indicii
teoretice privind dificultatea practică de rezolvare a acelei probleme cu ajutorul
calculatorului.
Ce înţelegem însă printr-o problemă (de calcul)? Intuitiv vorbind, o problemă de calcul
este o problemă pe care încercăm să o rezolvăm cu ajutorul calculatorului (ca de
exemplu, căutarea într-o bază de date, găsirea tuturor drumurilor într-un graf etc.)
O întrebare mai relevantă este însă următoarea: ce este un calculator? Evident, este un
dispozitiv de calcul! Ce este atunci un calcul?! Un calcul este o secvenţă bine definită de
instrucţiuni realizate de un dispozitiv de calcul. Iată deci un cerc vicios!! Vom ieşi din acest
cerc vicios dacă vom defini mai întâi riguros noţiunea de sistem de calcul şi apoi pe cea
de problemă de calcul drept un “obiect” care poate fi rezolvat cu ajutorul sistemului de
calcul într-un intreval finit de timp. Vom arăta, că în anumite ipoteze, acest model abstract
de calcultor pe care l-am definit este la fel de puternic precum un calculator real.
Se numeşte limbaj peste orice submulţime L *. Pentru a trata limbajele trebuie să
dispunem de reprezentări finite ale acestora:
dacă L * este finit, atunci putem enumera pur şi simplu elementele sale;
dacă L * este infinit, atunci avem nevoie de mecanisme speciale de reprezentare:
gramaticile regulate, gramaticile independente de context, gramaticile dependente de
context, gramaticile fără restricţii descriu clase de limbaje din ce în ce mai bogate. Aceste
clase de limbaje pot fi reprezentate şi cu ajutorul unor dispozitive de calcul precum
automatele finite, automatele pushdown, respectiv maşinile Turing.
dându-se un cuvânt oarecare *, putem decide dacă L sau nu?
4
CP
6
Teza Church-Turing
Multe dintre cele mai interesante probleme pe care încercăm să le rezolvăm cu ajutorul
calculatoarelor pot fi reformulate în termenii problemei apartenenţei la un limbaj, dar NU
TOATE! Această metodă de transformare a unei probleme de calculabilitate într-o
problemă de apartenenţă la un limbaj, este general acceptată şi a rezistat foarte bine
testului timpului, deşi – în fond – ea relevă incapacitatea noastră de a găsi o reprezentare
mai bună a problemelor.
Observaţiile de mai sus indică faptul că putem da reprezentări finite numai pentru
limbajele infinite dar numărabile. Ori, mulţimea tuturor limbajelor este nenumărabilă
(demonstraţia recurge la metoda diagonalizării).
există mult mai multe limbaje decât cele pe care le pot recunoaşte dispozitivele de
calcul de care dispunem.
O MT are o unitate de control finită (într-un moment oarecare de timp poate fi în una din
stările qQ, unde Q este o mulţime finită, numită mulţimea stărilor MT). Mai conţine şi o
bandă de intrare sau de lucru, care este infinită în ambele direcţii şi împărţită în celule
(finite). Fiecare celulă poate conţine un simbol dintr-o mulţime finită de simboluri, numită
alfabetul benzii şi notată cu . Unitatea de control dispune şi de un cap de citire/scriere,
numit şi cursor, care poate scana (citi) şi scrie simboluri în celulele benzii. Atunci când MT
începe să lucreze ea se află în următoarea configuraţie:
secvenţa (cuvântul) de intrare (peste un alfabet oarecare ) este scris pe bandă;
toate celelalte celule ale benzii conţin un simbol special, simbolul blank, notat cu . Se
presupune că şi că ;
cursorul este poziţionat este poziţionat în dreptul primului simbol din stânga al
cuvântului de intrare;
unitatea de control se află într-o stare specială, numită starea iniţială (sau de start) şi
notată de obicei cu q0
Ulterior, MT intră într-o secvenţă constând din următorii paşi: cursorul scanează simbolul
a aflat în celula curentă a benzii; în funcţie de acest simbol a şi de starea curentă a
unităţii de control q Q , MT efectuează tranziţia (q,a) = (p,b,D), unde:
p Q este noua stare a unităţii de control (în unele cazuri: p = q);
cursorul scrie simbolul b peste simbolul a din celula curentă (în unele cazuri: b = a);
cursorul de deplasează în dreptul următoarei celule de pe bandă, aflată fie la drepta
(D= R) fie la stânga (D = L) celulei prelucrate.
1.1 Definiţie.
O MT este un sistem ( , , Q q0, F, ) unde:
este o mulţime finită, numită alfabet de intrare;
este o mulţime finită, numită alfabetul benzii; , şi ;
Q este o mulţime finită, numită mulţimea stărilor MT;
q0 Q se numeste stare iniţială;
F Q se numeşte mulţimea stărilor finale (de acceptare sau de respingere);
: Q x Q x x { L , R } se numeşte funcţie de tranziţie.
7
Teza Church-Turing
1.3. Observaţie.
Orice limbaj Turing-decidabil (recursiv) este şi recunsocut de o MT (recursiv enumerabil).
Reciproca nu este adevărată: există limbaje recunoscute de MT (recursiv enumerabile)
care nu sunt Turing-decidabile(recursive).
1.4. Exemplu6.
Construim MT M care care acceptă palindroame şi numai palindroame peste alfabetul
binar = {0,1}. Luăm = {0,1, } şi Q = (s, p1, p2, p3, q1, q2, q3, r1, r2, r3}, unde s = starea
iniţială şi { r1, r2, r3, p3, q3} = F. Funcţia de tranziţie este dată în Figura 1.1.
Informal, M citeşte simbolul din extremitatea stângă, îl memorează, îl şterge şi apoi
încearcă să găsească acelaşi simbol în extremitatea dreaptă a cuvântului de intrare. Dacă
intrarea este un palindrom a cărui lungime este un număr par, atunci M ajunge la un
moment dat în starea finală de acceptare r1; dacă intrarea este un palindrom a cărui
lungime este un număr impar, atunci M ajunge la un moment dat fie în starea finală de
acceptare r2 fie în starea finală de acceptare r3 . În fine, dacă intrarea nu este un
palindrom, M stabileşte acest lucrusi intră fie în starea p3 fie în q3, oprindu-se respingând.
Prin urmare, M este o MT decidentă.
5
MS
6
CP
8
Teza Church-Turing
1.5. Exemplu.
O MT poate fi folosită şi pentru “a face ceva”, adică pentru a calcula o funcţie f : * *.
Aceasta înseamnă că dacă este cuvântul de intrare atunci MT se opreşte având f() (şi
nimic altceva) pe banda sa de intrare. Să luăm, de exemplu, o MT N care primeşte la
intrare cuvântul şi se opreşte după ce a calculat + 1 pe banda sa. Aici, secvenţele
binare sunt identificate cu întregi nenegativi în modul natural, dat de conversia din baza
de numeraţie 10 în baza 2. Figura 1.2. defineşte diagrama tranziţiilor lui N. NU este
indicată nici o stare finală deoarece MT nu este proiectată pentru a accepta un limbaj în
sensul convenţiilor de mai sus. Timpul de execuţie necesar pentru calcularea succesorului
pentru o secvenţă binară de lungime n este O(n).
0/0R
1/1R 1/1L
/L 0/1L
/1L
Figura 1.2: O maşină Turing care calculează succesorul unui număr natural
9
Teza Church-Turing
7
MS
10
Teza Church-Turing
alternative pot fi decodificate una în alta de către o MT, putem alaege orice codifcare
pentru obiectul de intrare; în plus, MT poate fi programată să decodifice reprezentarea
astfel încât aceasta să poată fi interpretrată în modul dorit de noi). Vom nota:
un singur obiect O, codificat printr-o secvenţă, prin <O>;
mai multe obiecte O1,O2,…,On, codifcate printr-o unică secvenţă, prin <O1,O2,…,On>
Vom descrie algoritmii implementaţi prin MT printr-un text inclus între ghilimele:
prima linie a textului va descrie datele de intrare; dacă intrarea este
o secvenţă de simboluri w , ea este interpretată ca un cuvânt şi notată cu w;
codificarea unui obiect <O> , atunci MT începe automat cu verificarea corectitudinii
acestei codifcări: dacă respectiva codificare nu respectă convenţiile stabilite, MT
respinge intrarea <O>.
algoritmul este împărţit în etape, fiecare etapă constând din mai mulţi paşi de calcul;
atât etapele cât şi paşii sunt numerotaţi iar structura de bloc este semnalată prin
indentare.
1.7. Un exemplu
Fie A limbajul care constă din toate secvenţele care reprezintă grafuri conexe
A = { <G> | G graf conex, neorientat }
Dăm o descriere de nivel înalt pentru MT, M, care decide asupra limbajului A.
M = “Fie intrarea <G>, adică o codificare a grafului conex, neorientat G:
1. Se selectează primul nod din G şi se marchează.
2. Se reia pasul următor până când nu se mai pot marca noi noduri:
3. Fie un nod oarecare din G: dacă el este legat printr-o muchie de un nod deja
marcat, atunci nodul trebuie marcat şi el.
4. Se scanează toate nodurile din G pentru a determina dacă sunt sau nu marcate
toate. Dacă sunt toate marcate, atunci M acceptă <G>, altfel respinge.”
Explicităm numai modul de codificare (şi verificare a codificării) pentru un graful G de mai
jos:
1 4
2 3
MT începe prin a verifica această codificare: scanează banda de intrare pentru a verifica:
existenţa a două liste;
prima listă să conţină numere distincte;
a doua listă să conţină perechi de numere, luate exclusiv din prima listă şi tot fără
repetiţii.
Dacă testul se încheie cu succes (codificarea este corectă) atunci MT trece la prima etapă
a algoritmului.
11
Teza Church-Turing
1.9. Teoremă
Pentru oricare MT cu mai multe benzi se poate construi o MT echivalentă.
Demonstraţie
Fie o MT M cu mai multe benzi şi o MT S cu o singură bandă de intrare; vom simula M cu
ajutorul lui S, memorând informaţia de pe cele n benzi ale M pe singura bandă a lui S.
# w1w2…wn# # # …#
12
Teza Church-Turing
1.10. Corolar
Limbajul L este recunoscut de o MT există o MT cu mai multe benzi care îl recunoşte.
Demonstraţie “”
Este imediată: orice MT standard este o MT cu mai multe benzi trivială (n = 1).
““
Fie M o MT cu mai multe benzi care recunoaşte limbajul L; conform Teoremei 1.9, există
o MT standard S echivalentă cu M S recunoaşte limbajul L q.e.d.
Demonstraţie
Fie N o MT nedeterminsită; este suficient să construim o MT D cu trei benzi care să o
simuleze deoarece, conform Teoremei 1.4, vom putea apoi să construim o MT standard
care să o simuleze pe D.
13
Teza Church-Turing
1.12. Corolar
Un limbaj L este recunoscut de o MT există o MT nedeterministă care îl recunoaşte.
Demonstraţie “”
Este imediată: orice MT standard este o MT nedeterministă trivială.
““
Fie N o MT nedeterministă care recunoaşte limbajul L; conform Teoremei 1.11, există o
MT standard S echivalentă cu N S recunoaşte limbajul L q.e.d.
1.13. Corolar
Un limbaj L * este decidabil există o MT nedeterministă decidentă care decide
asupra limbajului L.
1.14. Observaţii.
1. David Hilbert nu a folosit termenul de algoritm ci: “… un proces cu ajutorul căruia,
după un număr finit de operaţii, să se determine ….”
2. Formularea problemei indică faptul ca Hilbert presupunea că algoritmul există
sitrebuie doar descoperit.
3. Noţiunea intuitivă, neformalizată, de algoritm cu care operau matematicienii la
începutul secolului XX le permitea să găsească algoritmi pentru anumite sarcini
14
Teza Church-Turing
Un progres esenţial în această direcţie a fost făcut de Alonzo Church şi Alan Turing, prin
lucrările publicate în 1936 şi în care Church a dezvoltat -calculul iar Turing maşina care îi
va purta numele, totul în scopul de a defini noţiunea de algoritm.
S-a demonstrat că aceste două definiţii sunt echivalente. Legătura dintre aceste două
definiţii formale şi noţiunea intuitivă de algoritm poartă numele de TEZA CHURCH-
TURING:
Totuşi, teza Chirch Turing a furnizat o definiţie pentru noţiunea de algoritm suficientă (şi
necesară) pentru a rezolva Problema a 10a a lui Hilbert. În 1970, Yuri MATIJASEVIČ,
bazându-se pe rezultate anterioare datorate lui Martin DAVIS, Hilary PUTNAM, Julia
ROBINSON, arată că nu există nici un algoritm care să verifice dacă un polinom în oricâte
variabile admite o rădăcină în Z ( .Problema a 10a alui Hilbert este nerezolvabilă
algoritmic.)
Rezumat
15
Decidabilitate
2. Decidabilitate
Este util să explorăm limitele rezolvabilităţii algoritmice, adică s9 studiem problemele
nerezolvabile algoritmic pentru că dacă ştim ca o problemă este nerezolvabilă algoritmic
atunci:
putem alege între a o simplifica sau a o modifica, după care putem încerca din nou
să o rezolvăm;
putem demonstra că şi alte probleme sunt nerezolvabile algoritmic, arătând
echivalenţa lor cu o problemă ştiută ca nerezolvabilă algoritmic.
2.1. Teoremă
Limbajul ACCAFD = { <A,w> | A este un AFD care acceptă secvenţa w } este decidabil.
Demonstraţie
E suficient să construim o MT care să decidă asupra limbajului ACCAFD. Fie MT M
definită astfel:
M = “Fie secvenţa de intrare <A,w>, unde A este un AFD oarecare iar w *:
1. Se simulează calculul efectuat de A asupra cuvântului de intrare w.
2. Dacă simularea se încheie în starea qa atunci M acceptă secvenţa de intrare <A,w>;
dacă simularea se încheie în altă stare atunci M respinge.”
Conform convenţiilor de terminologie din Capitolul 1, M începe prin a verifica gradul de
corectitudine al codificării <A,w> (o reprezentare rezonabilă a AFD A constă din lista
celor cinci elemente din definiţia sa: Q, , , q0, F). Dacă <A,w> nu codifică corect AFD A
şi cuvântul w * atunci M respinge secvenţa <A,w>.
Altfel, M continuă simularea: ţine evidenţa stării curente a A şi a poziţiei cursorului
peste cuvântul w , scriind această informaţie pe propria sa bandă de lucru
o iniţial, starea curentă alui A este q0 iar cursorul este poziţionat în dreptul simbolului
din extremitatea stângă a cuvântului w;
o ulterior, starea automatului A şi poziţia cursorului sunt actualizate conform funcţiei de
tranziţie );
16
Decidabilitate
când M încheie procesarea ultimului simbol din w, M acceptă sau respinge secvenţa
de intrare <A,w> după cum automatul A ajunge în una dintre stările sale finale de
acceptare sau într-o stare finală care nu este de acceptare. q.e.d..
2.2. Teoremă
Limbajul ACCAFN = { <A,w> | A este un AFN care acceptă secvenţa w } este decidabil.
Demonstraţie
Construim o MT N care să decidă asupra limbajului ACCAFN
2.3. Teoremă
Limbajul EMPAFD = { <A> | A este un AFD şi L(A) = } este decidabil.
Demonstraţie
Dacă în teoremele anterioare trebuia să verificăm dacă un automat acceptă sau nu un
anumit cuvânt de intrare, acum trebuie să verificăm dacă un automat acceptă măcar un
cuvânt sau nu. Aceasta este PROBLEMA LIMBAJULUI VID (pentru AFD).
În acest scop, reamintim că unui AFD îi putem asocia un arbore de derivare care să
descrie toate derivările posibile pornind de la starea iniţială (luată ca etichetă a rădăcinii).
Unele derivări au ca frunze stări finale, ceea ce înseamnă că secvenţele cu care sunt
etichetate trebuie acceptate, altele nu (secvenţele lor trebuie respinse)
vom testa faptul că, navigând de-a lungul unei anumite ramuri de calcul din arborele de
derivare asociat AFD, ajungem într-o stare de acceptare.
vom construi o MT V care va folosi un algoritm de marcarea stărilor prin care trece
AFD.
17
Decidabilitate
2.4. Teoremă
Limbajul EQVAFD = { <A,B> | A şi B sunt AFD şi L(A) = L(B) } este decidabil.
Demonstraţie
Această problemă este cunoscută drept PROBLEMA ECHIVALENTEI (pentru AFD).
2.5. Teoremă
Limbajul
ACCGIC = { <G,w> | G este o gramatică independentă de context care generează w }
este decidabil.
Demonstraţie
Fie G o gramatică independentă de context şi un cuvânt oarecare w *; pentru a verifica
dacă G generează w putem proceda în două moduri:
utilizăm arborele de derivare asociat lui G şi examinăm toate derivările pentru a o
găsi pe cea care produce secvenţa w ( ar trebui să exeminăm un număr infinit de
derivări; în plus, dacă G nu generează w , acest algoritm nu se opreşte niciodată
obţinem o MT acceptoare pentru ACCGIC nu decidentă);
aplicăm aceeaşi idee dar transformăm această MT de tip acceptor în una de tip
decident făcând algoritmul să verifice numai un număr finit de derivări. Pentru aceasta
aplicăm următoarea lemă:
Prin urmare, pentru a verifica dacă w L(G), algoritmul va testa – în funcţie de lungimea
cuvântului cercetat, |w| = n – numai derivările de lungime 2n-1; cum aceste derivări sunt
în număr finit (|||w|) înseamnă că avem o MT decidentă. În plus, conversia G în forma
18
Decidabilitate
normală Chomski8 se poate face tot de către MT, folosind procedura descrisă în
demonstraţia teoremei de aducere la forma normală Chomski.
2.8. Observaţie
O teoremă anterioară descrie modul de conversie a unei gramatici independente de
context intr-un automat pushdown şi reciproc toate rezultatele demonstrate pentru
gramaticile independente de context au loc şi pentru automatele pushdown.
2.9. Teoremă
Orice limbaj independent de context este decidabil.
Demonstraţie
Fie L un limbaj independent de context; putem proceda în două moduri:
convertim automatul pushdown care recunoaşte limbajul L direct într-o MT (conversia
este imediată pentru că putem simula stiva automatului cu ajutorul benzii de lucru – mult
mai performante – a MT); în plus, chiar dacă automatul pushdown ar fi nedeterminist ştim
să-l convertim într-o MT nedeterministă şi apoi, cu procedura din Teorema 1.11, s-o
convertim pe aceasta într-o MT deterministă. Apare însă o dificultate: unele ramuri ale
calculului efectuat de automatul pushdown pot fi infinite, pot efectua citiri şi scrieri în stivă
fără a se opri vreodată MT care va simula acest automat va avea şi ea nişte ramuri de
calcul pe care nu se va opri niciodată MT nu va fi decidentă ci doar acceptoare;
utilizăm MT C descrisă în demonstraţia Teoremei 2.5.
8
Producţiile unei gramatici în forma normală Chomski sunt exclusiv de forma A BC, sau
A a, unde A,B,C sunt simboluri neterminale iar a este un simbol terminal.
19
Decidabilitate
20
Nedecidabilitate: problema opririi
Metoda reducerii este una dintre cele mai naturale metode de a rezolva sau a demonstra
un rezultat matematic. Reductibilitatea presupune întotdeauna existenţa a două probleme;
metoda nu menţionează nimic despre rezolvarea problemei P1 sau P2 în sine
(independent) ci numai despre rezolvarea problemei P1 dându-se o luţie pentru P2.
3.1. Definiţie
Reducerea este o metodă de a transforma o problemă P1 într-o altă problemă P2 astfel
încât o soluţie dată problemei P2 poate fi utilizată pentru a rezolva problema P1.
3.2. Exemplu
P1: rezolvarea unui sistem de n ecuaţii lineare cu m necunoscute, n,m N.
P2: inversarea unei matrice.
P3: calcularea valorii unui determinant.
3.3. Observaţie
Reductibilitatea joacă un rol important în
(i) teoria calculabilităţii:
dacă P1 este reductibilă la P2 şi P2 este decidabilă, atunci P1 este decidabilă;
sau, echivalent:
dacă P1 este reductibilă la P2 şi P1 este nedecidabilă, atunci P2 este nedecidabilă;
Obţinem astfel o metodă de a demonstra că o problemă P este nedecidabilă
(nerezolvabilă algoritmic): căutăm o problemă Q, cunoscută ca nedecidabilă şi
demonstrăm că problema Q este reductibilă la P.
(ii) teoria complexităţii:
dacă P1 este reductibilă la P2 atunci rezolvarea lui P1 nu poate fi mai dificilă decât
rezolvarea lui P2 pentru că o soluţie obţinută pentru P2 furnizează o luţie pentru P1
sau, echivalent:
P1 are aceeaşi complexitate ca şi P2.
21
Nedecidabilitate: problema opririi
3.4. Teoremă
Limbajul ACCMT = { <M,w> | M este o maşină Turing şi M acceptă cuvântul w * } NU
este decidabil.
Această MT recunoaşte limbajul ACCMT dar nu decide asupra lui deoarece, dacă M
ciclează pe un cuvânt de intrare oarecare w * atunci şi U ciclează pe intrarea
corespunzătoare <M,w>. Dacă acest algoritm ar putea determina faptul că pe intrarea w
maşina Turing M nu se opreşte, atunci U ar putea respinge intrarea corespunzătoare
<M,w> şi limbajul ACCMT ar fi decidabil. Vom demonstra mai jos că nu există nici un
algoritm capabil să facă această apreciere.
22
Nedecidabilitate: problema opririi
Ce se întâmplă însă atunci când D primeşte la intrare propria sa descriere <D> ? Atunci
avem:
acceptă, dacă D nu acceptă <D>,
D(<D>) = contradicţie
respinge, dacă D acceptă <D>.
nici D nici H nu pot exista în realitate limbajul ACCMT nu este decidabil. q.e.d.
3.6. Definiţie
O MT oarecare se numeşte universală dacă poate simula orice MT, cu condiţia să
primească la intrare o descriere corectă a acesteia.
În sprijinul acestei afirmaţii, vom indica acum un limbaj concret care nu numai că nu este
decidabil dar nu este nici recunoscut de o MT. Pentru aceasta vom demonstra mai întâi
ca dacă atât un limbaj cât şi complementul său sunt recunoscute de maşini Turing atunci
limbajul respectiv este decidabil.
3.8. Definiţie
Limbajul L * se numeşte co-Turing-recunoscut dacă L este compelmentul unui
limbaj Turing-recunoscut.
3.9. Teoremă
Fie limbajul L * Atunci, L este decidabil dacă şi numai dacă L este Turing-recunoscut
şi L este co-Turing-recunoscut.
Demonstraţie “”
Conform ipotezei, L este decidabil L este evident Turing-recunoscut.
Pe de altă parte, dacă L este decidabil atunci şi L este decidabil şi, prin urmare, L
este şi Turing-recunoscut L este co-Turing-recunoscut (conform Definiţiei 2.15).
““
Conform ipotezei, L este Turing-recunoscut şi co-Turing-recunoscut
L şi L sunt Turing-recunoscute fie M1, M2 cele două MT care le recunosc, respectiv.
Construim următoarea MT M cu ajutorul lor:
M = “Fie cuvânt de intrare w *:
1. Se rulează M1 şi M2 în paralel pe intrarea w.
23
Nedecidabilitate: problema opririi
2. Dacă M1 (asociată lui L) acceptă w atunci M acceptă w iar dacă M2 (asociată lui
L ) acceptă w atunci M respinge w.”
3.10. Corolar
Limbajul A C C MT NU este Turing-recunoscut.
Demonstraţie
Presupunem prin absurd că limbajul A C C MT este Turing-recunoscut
În demonstraţia Teoremei 2.12 am arătat şi că limbajul ACCMT este Turing-recunoscut
Teorema 2.16
A C C MT este decidabil ACCMT este decidabil contradicţie cu Teorema 2.12
q.e.d.
3.11. Observaţie
Aceaste rezultate încheie demonstrarea următoarelor relaţii (începută în cursul de Teoria
limbajelor formale) privind familiile de limbaje formale:
Limbaje
Limbaje recunoscute
Limbaje decidabile de MT (recursiv
Limbaje indep. (recursive) enumerabile)
regulate context
24
Nedecidabilitate: problema opririi
3.12. Teoremă
Limbajul HALTMT = {<M,w> | M este o maşină Turing şi M se opreşte pe intrarea w *}
este nedecidabil.
Faptul că ACCMT se reduce la HALTMT va rezulta din faptul că MT care decide asupra
ACCMT este construită pe baza MT care decide asupra HALTMT într-un mod care leagă
enunţul PROBLEMEI ACCEPTABILITATII de enunţul PROBLEMEI OPRIRII:
fie MT H care decide asupra limbajului HALTMT; construim MT A care să decidă asupra
limbajului ACCMT cu ajutorul H, adică: A utilizează H pentru a “observa” comportamentul
maşinii Turing M pe intrarea w * (unde M şi w sunt arbitrare), şi anume:
dacă H indică faptul că M se opreşte şi acceptă w atunci A acceptă <M,w>;
dacă H indică faptul că M se opreşte şi respinge w atunci A respinge <M,w>;
dacă H indică faptul că M ciclează pe intrarea w atunci convenim ca A să
respingă intrarea <M,w> (intr-adevăr, dacă M ciclează pe w înseamnă că M nu se
opreşte şi nu acceptă w deci <M,w> ACCMT);
A este decidentă nu doar acceptoare.
3.13. Teoremă
Limbajul EMPMT = {<M> | M este o maşină Turing şi L(M) = } este nedecidabil.
3.14. Teoremă
Limbajul EQVMT = { <M1,M2> | M1 şi M2 sunt maşini Turing şi L(M1) = L(M2) } este
nedecidabil.
25
Nedecidabilitate: problema opririi
3.15. Observaţie
O altă problemă de calculabilitate interesantă relativă la MT se referă la posibilitatea ca o
MT să recunoască un limbaj care poate fi recunoscut şi de un model de calculabilitate mai
slab: un automat finit, un automat pushdown etc. De exemplu, problema verificării
echivalenţei dintre o MT şi un AFD (altfel spus: poate o MT să recunoască un limbaj
regulat) ar trebui să aibă – intuitiv – un răspuns afirmativ. Teorema 3.16 (a cărei
demonstraţie rămâne ca exerciţiu) arată că această problemă nu este rezolvabilă
algoritmic.
3.16. Teorema
Limbajul REGMT = { <M> | M este o MT oarecare şi L(M) este un limbaj regulat } este
nedecidabil.
Demonstraţie
Presupunem prin absurd că există o MT R care decide asupra REGMT şi o utilizăm
pentru a construi o MT A care să decidă asupra limbajului ACCMT , astfel: A primeşte
secvenţa de intrare <M,w> şi modifică M astfel încât MT rezultată, fie ea M2, să
recunoască un limbaj regulat dacă şi numai dacă M acceptă w. Mai exact:
recunoaşte limbajul neregulat {0n1n| n 0}, dacă M nu acceptă w,
M2 =
recunoaşte limbajul regulat *, dacă M acceptă w.
3.17. Observaţie
Toate problemele privind verificarea caracterului finit, independent de context, respectiv
recursiv al unui limbaj recunoscut de o MT sunt nedecidabile (demonstraţiile sunt similare
celei de mai sus). De fapt, dispunem de un rezultat general care afirmă că orice
proprietate privitoare la limbajele recunoscute de o MT este nedecidabilă. Acesta este:
26
Nedecidabilitate: problema opririi
Noţiunea de reductibilitate poate fi formalizată în mai multe moduri iar alegerea depinde –
în principal – de natura aplicaţiei avute în vedere. Aici alegem un caz simplu de
reductibilitate: REDUCTIBILITATEA FUNCTIONALA.
3.19. Definiţie
Funcţia f : * * se numeşte calculabilă există o MT care, oricare ar fi secvenţa de
intrare w *, se opreşte, având pe bandă secvenţa f(w).
3.20. Exemple
Toate funcţiile aritmetice definite pe N sunt calculabile; de exemplu, putem construi o MT
care primeşte la intrare perechea de numere naturale <n,m> şi produce la ieşire suma
m+n.
3.4.2. Definiţia formală a reducerii funcţionale
3.21. Definiţie
Fie limbajele A, B *. Limbajul A se numeşte reductibil funcţional la limbajul B şi
se notează prin A m B
() f : * * calculabilă astfel încât () w *: w A f(w) B.
Funcţia f se numeşte reducerea lui A la B.
3.22. Observaţie
Existenţa unei reduceri funcţionale a lui A la B permite transformarea problemei
apartenenţei lui w la A la problema apartenenţei lui f(w) la B
pentru a demosntra că w A utilizăm reducerea f pentru a asocia w cu f(w) şi
demonstrăm că f(w) B.
Cu această metodă demonstrăm acum formal observaţia anterioară protrivit căreia dacă
A este reductibilă la B şi B este algoritmic rezolvabilă atunci A este algoritmic
rezolvabilă.
3.23. Teoremă
Dacă A m B şi limbajul B este decidabil, atunci limbajul A este decidabil.
27
Nedecidabilitate: problema opririi
Demonstraţie
Conform ipotezei “B = limbaj decidabil” există o MT M decidentă pentru B.
Conform ipotezei “A m B “ () f : * * o reducere a lui A la B putem construi
o MT N decidentă pentru A astfel:
N = “Fie cuvânt de intrare w *:
1. Se calculează f(w).
2. Se rulează M pe intrarea f(w); rezultatul furnizat de M este preluat de N.”
3.24. Corolar
Dacă A m B şi limbajul A este nedecidabil atunci şi limbajul B este nedecidabil.
3.25. Observaţie
Putem acum să încheiem demonstraţiile teoremelor privind nedecidabilitatea unor limbaje
(nerezolvabilitatea algoritmică a unor probleme) formalizând şi reducerea limbajelor unul
la altul.
3.26. Exemplu
În Teorema 3.12 am demonstrat nedecidabilitatea limbajului HALTMT prin reducerea
limbajului ACCMT la HALTMT şi prin metoda reducerii la absurd. Această reducere a
arătat cum poate fi folosită o MT decidentă pentru HALTMT în scopul definirii unei MT
deciedente pentru ACCMT; presupunerea prin absurd că o astfel de MT există ne-a
condus la obţinerea unei contradicţii cu Teorema 3.4 care arăta că ACCMT nu este
decidabil.
Vom formaliza acum reducerea limbajului ACCMT la HALTMT . Pentru a demonstra că
ACCMT m HALTMT trebuie să găsim o funcţie f : * *, calculabilă, astfel încât
oricare ar fi secvenţa <M,w>: <M,w> ACCMT f(<M<w>) = <M’,w’> HALTMT.
Evident, dacă secvenţa de intrare primită de F nu este corect formată (adică nu este
codificarea unei MT şi a unui cuvânt din *, <M,w> ACCMT) atunci F produce la ieşire
o secvenţă v HALTMT. În general, cănd definim o MT care calculează o reducere de la
limbajul A la limbajul B, se presupune că secvenţele de intrare incorect formate conduc
la secvenţe din * \ B.
3.27. Teoremă
Fie A m B şi limbajul B recunoscut de MT ; atunci limbajul A este recunoscut de MT.
28
Nedecidabilitate: problema opririi
Demonstraţie
Analogă demonstraţiei Teoremei 3.23 privind decidabilitatea, numai că cele două MT M
şi N sunt doar acceptoare nu decidente pentru B, respectiv A.
3.28. Corolar
Dacă A m B şi limbajul A nu este Turing-recunoscut atunci nici limbajul B nu este
Turing-recunoscut.
3.29. Observţie
Putem aplica acest corolar pentru a rezolva probleme de calculabilitate astfel:
să presupunem că trebuie să demonstrăm că limbajul L nu este Turing-recunoscut;
arătăm că ACCMT m L
A C C MT m L
pe de altă parte, evident: A m B A m B
Dar, conform Corolarului 3.10, A C C MT nu este Turing-recunoscut.
Aplicând Corolarul 3.28
L nu este Turing-recunoscut.
Deci: pentru a demonstra că limbajul L nu este Turing-recunoscut e suficient să
demonstrăm că ACCMT m L .
Rezumat
29
Clasa de complexitate TIMP
Abordăm acum teoria complexităţii calculului, definind şi studiind – dintre diferitele tipuri
de resurse de calcul necesare rezolvării problemelor – pe cele mai importante: timpul de
calcul şi spaţiul de memorie.
4.1. Terminologie
Fie limbajul L1 = { 0k1k {0,1}* | k 0 }
Am demonstrat ca L1 este independent de context şi că ACCGIC este decidabil; prin
urmare ştim că L1 este decidabil (vezi şi Teorema 2.9)
Problema care ne interesează acum este însă:
Fie o MT M1 clasică (cu o singură bandă de lucru) care calculează L1. Descriem această
MT în detaliu pentru a putea număra paşii pe care îi face:
M1 = “Fie cuvântul de intrare w *:
1. Se examinează banda de intrare şi se respinge w dacă se descoperă un simbol 0
la dreapta unui simbol 1.
2. Se execută etapa următoare, atât timp cât pe bandă există atât simboluri 0 cât şi
simboluri 1:
3. Se scanează banda şi se barează un singur simbol 0 şi un singur simbol 1.
4. Dacă, după ce toate simbolurile 0 au fost barate pe bandă au mai rămas simboluri
1 nebarate, sau dacă, după ce toate simbolurile 1 au fost barate pe bandă au mai
rămas simboluri 0 nebarate, atunci secvenţa w se respinge.
Altfel, dacă toate simbolurile 0 şi toate simbolurile 1 de pe bandă au fost barate,
atunci secvenţa w se acceptă.”
Numărul de paşi executaţi de un algoritm (o MT) pentru prelucrarea unei date de intrare şi
obţinerea rezultatului paote depinde de mai mulţi parametri. De exemplu, dacă data de
intrare a algoritmului este un graf, atunci numărul de paşi poate depinde de numărul de
noduri / muchii, de gradul maxim al grafului, de o combinaţie a acestor factori şi / sau a
altora.
Aici, pentru simplificare, vom calcula TIMPUL DE EXECUTIE al unui algoritm numai ca
funcţie de LUNGIMEA SECVENTEI care reprezintă informaţia sa de intrare şi vom ignora
ceilalţi parametri. Se pot aborda:
cazul cel mai nefavorabil (în care se consideră cel mai lung timp de execuţie al
algoritmului pentru toate secvenţele de o lungime dată);
cazul cel mai favorabil (în care se consideră cel mai scurt timp de execuţie al
algoritmului pentru toate secvenţele de o lungime dată);
cazul mediu (în care se consideră media timpilor de execuţie ai algoritmului pentru
toate secvenţele de o lungime dată).
30
Clasa de complexitate TIMP
4.1. Definiţie
Fie M o MT oarecare care se opreşte pentru orice secvenţă de intrare. Prin
complexitate timp înţelegem timpul de execuţie al M adică o funcţie
f : N N, f(n) = numărul maxim de paşi executaţi de M pentru o secvenţa de intrare
de lungime n, () n N .
4.2. Exemplu
Fie f : N N, f(n) = 5n3 + 2n2 + 22n + 6;
spunem că f tinde asimptotic către n3 şi notăm acest lucru cu O(n3).
4.3. Observaţie
Notaţia O a fost introdusă de P. BACHMANN in cartea sa “Analytische Zahlentheorie” în
1892, ca o notaţie convenabilă pentru operarea cu aproximaţii. Ea ne permite să inlocuim
semnul cu semnul =. În general, notaţia O(f(n)) poate fi utilizată oridecâteori f este o
funcţie de n , pentru a înlocui o anumită cantitate care nu este cunoscută explicit.
4.4. Definiţie
Fie f, g : N R+
(i) f(n) = O(g(n)) şi citim “f(n) este de ordin cel mult g(n)” sau “f(n) este O mare de
g(n)” () constantele c1 > 0 şi n1 N astfel încât f(n) c1.g(n), () n n1.
c1.g(n)
f(n)
n1
(îi) f(n) = (g(n)) şi citim “f(n) este de ordin cel puţin g(n)” sau “f(n) este omega mare
de g(n)” () constantele c2 > 0 şi n2 N astfel încât f(n) c2.g(n), () n n2.
f(n)
c2.g(n)
n2
31
Clasa de complexitate TIMP
(iii) f(n) = (g(n)) şi citim “f(n) este de ordin g(n)” sau “f(n) este theta de g(n)”
f(n) = O(g(n)) şi f(n) = (g(n)).
c1.g(n)
f(n)
c2.g(n)
n0
4.5. Exemplu
Revenim la notaţia O şi la funcţia polinomială f(n) = 5n3 + 2n2 + 22n + 6
f(n) = O(n3), de exemplu, pentru c1 = 6 şi n1 = 10;
f(n) = O (n4), de exemplu, pentru c1 = 1 şi n1 = 6 sau pentru c1 = 36 şi n1 = 1;
f(n) O (n2), presupunem prin absurd că există c1 >0 şi n1 N astfel încât
5n3 + 2n2 + 22n + 6 c1.n2, () n n1 5n3 + (2- c1).n2 + 22n + 6 0 etc.
4.6. Observaţie
Fie f1 : N N, f1(n) = 3n.log2n + 5n.log2(log2n) + 2
f1(n) = O(n.log n) pentru că log n domină log(log n).
Analog, f2(n) = O(n2) + O(n) = O(n2) pentru că O(n2) domină O(n). Să mai observăm că
fiecare apariţie a lui O poate reprezenta o altă constantă.
4.7. Observaţie
A) Specificarea bazei logaritmilor nu este necesară ea intervenind cu cel mult un
coeficient constant, conform formulei:
log b x
log a x
log b a
B) Analog, nici specificarea bazei exponenţialei nu este necesară pentru că:
log x c log2 n
() x: x 2 2 n c 2 2O(log n) este o limită superioară pentru nc, unde c
este o constantă oarecare. Evident, şi 2O(n) este o limită superioară pentru nc.
4.8. Observaţie
Limitele asimptotice de tipul nc se numesc limite polinomiale.
Limitele asimptotice de tipul 2 n se numesc limite exponenţiale.
Limitele asimptotice de tipul k.n se numesc limite lineare.
Limitele asimptotice de tipul n se numesc limite sublineare.
4.9. Observaţie
Pe lângă notaţiile O şi mai există şi notaţiile o şi , obţinute din Definiţia 4.4 prin
înlocuirea inegalităţii cu inegalitatea strictă < , sau
32
Clasa de complexitate TIMP
f ( n)
f (n) o( g (n)) lim 0
n g ( n)
4.10. Exemple
n o(n)
n =o(n.log log n)
n.log log n = o(n.log n)
n.log n = o (n2)
n2 = o(n3)
4.11. Propoziţie9
(i) Notaţiile O, , , o, sunt tranzitive;
(îi) Notaţiile O, , , sunt reflexive, dar nu şi o, ;
(îii) Notaţia este simetrică dar nu şi celelalte notaţii
4.12. Propoziţie10
Notaţiile O, , , o, pot fi manipulate algebric dar cu precauţie:
c.O(f(n)) = O(f(n))
O(f(n)) + O(f(m)) = O(f(n))
O(O(f(n))) = O(f(n))
O(f(n)) O(g(n)) = O(f(n).g(n))
O(f(n).g(n)) = f(n).O(g(n));
atenţie: ultima “egalitate“ are loc într-un singur sens: de la stânga la dreapta.
4.13. Definiţie
Fie t : N N. Se defineşte clasa de complexitate TIME (timp polinomial) prin:
TIME(t(n)) = { L * | () o MT care decide asupra limbajului L în timp O(t(n)) }
9
Johnsonbaugh
10
Idem
33
Clasa de complexitate TIMP
4.14. Exemplu
L1 = { 0k1k {0,1}* | k 0 } TIME(n2) pentru că M1 decide asupra L1 în timp O(n2) iar
TIME(n2) conţine toate limbajele asupra cărora se poate decide în timp O(n2). Putem
îmbunătăţi această limită? Putem defini o MT care să decidă asupra limbajului L1 mai
repede?
(i) Modificăm MT M1 astfel încât la fiecare Etapă 3 barăm câte două simboluri 0 şi
două simboluri 1 (în loc de câte unul singur) reducem numărul de scanări din Etapa 3
la jumătate avem n/4 scanări de câte maximum n paşi fiecare O(n2) această
reducere inseamnă un factor constant egal cu 2 deci nu afectează timpul asimptotic de
execuţie al algoritmului;
(ii) Fie acum o altă MT M2, definită astfel:
M2 = “Fie cuvântul de intrare w *:
1. Se examinează banda de intrare şi se respinge w dacă se descoperă un simbol 0
la dreapta unui simbol 1.
2. Se execută următoarele două etape, atât timp cât pe bandă există atât simboluri 0
cât şi simboluri 1:
3. Se scanează banda pentru a determina dacă numărul total de simboluri 0 şi 1
aflat pe bandă este impar. Dacă da, atunci cuvântul se respinge.
4. Se scanează banda şi se barează simbolurile 0 din doi în doi începând cu
primul simbol 0 şi se barează simbolurile 1 din doi în doi începând cu primul
simbol 1.
5. Dacă, după ce toate simbolurile 0 au fost barate pe bandă au mai rămas simboluri
1 nebarate, sau dacă, după ce toate simbolurile 1 au fost barate pe bandă au mai
rămas simboluri 0 nebarate, atunci secvenţa w se respinge.
Altfel, dacă toate simbolurile 0 şi toate simbolurile 1 de pe bandă au fost barate,
atunci secvenţa w se acceptă.”
Este evidentă similitudinea dintre MT M1 şi M2 ; putem afirma deci că M2 decide
asupra limbajului L1. calculăm acum timpul său de execuţie:
observăm că fiecare etapă se execută în O(n) paşi;
numărăm de câte ori seexecută fiecare etapă:
o Etapa 1 se execută o singură dată,
o Etapa 5 se execută o tot singură dată,
o în Etapa 4 se barează cel puţin jumătate din simbolurile 0 şi jumătate din
simbolurile 1 la fiecare scanare e nevoie de cel mult (1+log2n) scanări pentru a
bara toate simbolurile Etapele 2, 3, 4 se execută de cel mult (1+log2n) ori.
timpul de execuţie pentru MT M2 este de:
O(n) + (1+log2n).O(n) + O(n) = O(n) + O(n . log n) = O(n . log n)
L1 TIME(n . log n)
(iii) Poate fi decis L1 în timp o(n . log n)? Răspunsul este negativ, conform Teoremei 4.3,
dată mai jos, fără demonstraţie.
(iv) Limbajul L1 poate fi decis chiar în timp linear dacă MT respectivă are două benzi.
Fie MT M3 cu doua benzi definită astfel:
M3 = “Fie cuvântul de intrare w *:
1. Se examinează banda de intrare şi se respinge w dacă se descoperă un simbol 0
la dreapta unui simbol 1.
2. Se scanează subşirul de simboluri 0 de pe Banda 1 a MT până la întâlnirea primului
simbol 1 şi se copiază pe Banda 2 a MT.
3. Se scanează subşirul de simboluri 1 rămas pe Banda 1 a MT până la sfârşit,
barându-se – pentru fiecare simbol 1 scanat – câte un simbol 0 de pe Banda 2..
4. Dacă toate simbolurile 0 de pe Banda 2 au fost barate dar pe Banda 1 au mai
rămas simboluri 1 de citit sau dacă pe Banda 2 au mai rămas simboluri 0
34
Clasa de complexitate TIMP
4.15. Teoremă
Orice limbaj care poate fi decis în timp o(n.log n) de o MT cu o singură bandă este
regulat.
Aceasta evidenţiază o diferenţa esenţială care există între teoria calculabilităţii şi teoria
complexităţii:
în teoria calculabilităţii, Teza Church-Turing arată că toate modelele de calculabilitate
“valabile” sunt echivalente între ele (adică decid asupra aceleiaşi clase de limbaje);
în teoria complexităţii, alegerea unui model de calculabilitate afectează complexitatea-
timp a limbajului (problemei): un limbaj care – printr-un model de calculabilitate – este
decidabil în timp linear poate să fie – prin alt model de calculabilitate – decidabil doar în
timp polinomial.
Faptul că acelaşi limbaj poate necesita timpi de calcul diferiţi în diferite modele de
calculabilitate pare să torpileze orice incercare de clasificare a problemelor de
calculabilitate în funcţie de complexitatea timp a acestora. Din fericire, necesarul de timp
de calcul nu diferă în mod esenţial la nivelul modelelor de calcul deterministe.
4.17. Teoremă
Fie t : N N cu proprietatea că () n N : t(n) n.
Atunci, orice MT M cu mai multe benzi şi cu timp de lucru t(n) admite o MT S cu o
singură bandă de intrare şi cu timp de lucru O(t2(n)), echivalentă.
35
Clasa de complexitate TIMP
Demonstraţie
Ideea demonstraţiei
În Teorema 1.9 am arătat cum se poate transforma o MT M cu mai multe benzi într-o MT
S cu o singură bandă, echivalentă.
Acum trebuie doar să reluăm demonstraţia Teoremei 1.9 şi să analizăm modul în care S
simulează M pentru a calcula timpul suplimentar necesar. Vom demonstra că simularea
fiecărui pas efectuat de M necesită cel mult O(t(n)) paşi în cazul lui S. Prin urmare,
timpul de execuţie total al lui M este de O(t2(n)).
Formalizare
Fie M o MT cu k benzi de intrare care rulează în timp t(n), unde t : N N , t(n) n,
() n N .
Construim (după metoda utilizată în demonstraţia Teoremei 1.9) o MT S cu o singură
bandă de intrare care să simuleze M şi analizăm timpul de lucru care îi este necesar
pentru aceasta.
Analizăm acum această simulare din punctul de vedere al timpului de calcul necesar.
(i) În prima etapă, în care S copiază pe banda sa informaţiile de pe cele k benzi ale M
şi le separă prin delimitatorii # , lui S îi sunt necesari O(n) paşi deoarece, conform
ipotezei, M rulează – pe o intrare de lungime n – în timp t(n).
(ii) Ulterior, S simulează fiecare dintre cei (conform ipotezei) t(n) paşi ai lui M.
Pentru fiecare pas executat de M, S parcurge de 2 ori porţiunea activă (cu informaţie) a
benzii sale de intrare:
prima parcurgere serveşte la obţinerea informaţiei necesare pentru a determina
mişcarea următoare;
a doua parcurgere serveşte la efectuarea acestei mişcări.
Timpul necesar efectuării acestor parcurgeri este evident determinat de numărul celulelor
cu informaţie de pe banda lui S. Căutăm deci o limită superioară pentru această lungime.
36
Clasa de complexitate TIMP
marchează extremitatea
stângă a benzii
numărul de celule cu
informaţie de pe prima
bandă
delimitatorul celor
(S) = 1 + (M1) + 1 + (M2) + 1 + … + (Mk) + 1 două benzi alăturate
.
1 + t(n) + 1 + t(n) + 1 + … + t(n) + 1 1 + k t(n) + k
Prin urmare, din (i) şi (ii) rezultă că întreaga simulare a lui M de către S consumă
O(n) + O(t2(n)) paşi
4.18. Observaţie
Ipoteza t(n) n, () n N nu este restrictivă, ci dimpotrivă: în caz contrar, M “nu ar
avea timp” nici măcar să citească toată informaţia, darămite să o prelucreze!
37
Clasa de complexitate TIMP
4.19. Definiţie
Fie N o MT nedeterministă decidentă. Timpul de execuţie al N este o funcţie
f : N N, f(n) = numărul maxim de paşi efectuaţi de N de-a lungul oricărei
ramuri de calcul, pe intrarea w, |w| = n, () w *, () n N.
MT deterministă MT nedeterminsită
. .
f(n) . .
f(n)
. .
acceptă
4.20. Teoremă
Fie t : N N cu proprietatea că () n N : t(n) n.
Atunci, orice MT N nedeterministă cu o singură bandă de intrare şi cu timp de lucru t(n)
admite o MT D determinsită cu o singură bandă de intrare şi cu timp de lucru 2O(t(n)),
echivalentă.
Demonstraţie
Fie N o MT nedeterministă cu o singură bandă de intrare care rulează în timp t(n), unde
t : N N , t(n) n, () nN .
Construim (după metoda utilizată în demonstraţia Teoremei 1.11) o MT D deterministă
cu o singură bandă de intrare care să simuleze N şi analizăm timpul de lucru care îi este
necesar pentru aceasta.
38
Clasa de complexitate TIMP
Analizăm acum, din punctul de vedere al timpului de calcul necesar, modul în care D
simulează N.
Simularea presupune explorarea arborelui de derivare; cum N este decidentă,
înseamnă că se opreşte pentru orice intrare, deci putem folosi oricare dintre metodele de
parcurgere (chiar şi Depth First!! alegem totuşi parcurgerea Breadth First, adică vom vizita
toate nodurile de pe nivelul d înainte de a vizita un nod oarecare de pe nivelul d+1).
Putem începe parcurgerea arborelui de la rădăcină şi continua de-a lungul oricărui drum
către o frunză, oricât de ineficientă ar fi această tehnică – expusă în demonstraţia
Teoremei 1.11). Conform observaţiilor (i) – (iv), timpul necesar acestei parcurgeri (de la
rădăcină la un nod oarecare) este de ordinul O(t(n)) şi deci timpul de lucru al MT D’
(deterministă cu 3 benzi) este de ordinul O(t(n)bt(n)) = 2O(t(n)) (vezi Observaţia 4.7).
Conversia lui D’ într-o MT D deterministă cu o singură bandă produce, conform
Teoremei 4.17) o anumită creştere a timpului de calcul: de la O(t(n)) la O(t2(n)).
Prin urmare, timpul de calcul total necesar conversiei unei MT nederministe cu o
singură bandă într-o MT deterministă cu o singură bandă este de
(2 O(t (n)) ) 2 2 O(2t (n)) 2 O(t (n))
q.e.d.
4.5. Clasa P
Cele două teoreme de mai sus au ilustrat distincţii importante din punctul de vedere al
complexităţii între diferite modele de calculabilitate:
complexitatea timp a problemelor se modifică cu un factor polinomial (o ridicare la
pătrat) atunci când trecem de la MT cu mai multe benzi la MT cu o singură bandă (ambele
deterministe);
complexitatea timp a problemelor se modifică cu un factor exponenţial atunci când
trecem de la MT nedeterministe la MT deterministe (ambele cu o singură bandă).
39
Clasa de complexitate TIMP
În continuare ne vom concentra asupra acelor aspecte ale teoriei complexităţii-timp care
nu sunt afectate, în ceea ce priveşte timpul de lucru, de diferenţe de tip polinomial (le
considerăm nesemnificative şi le ignorăm, adică: dacă atunci când am introdus notaţia
asimptotică O am ignorat factorii constanţi, acum, în aproximarea timpului de lucru,
ignorăm diferenţe polinomiale şi mai importante, precum cea dintre n şi n3)
vom putea dezvolta teoria complexităţii timp într-un mod care să nu fie dependent de
modelul de calculabilitate ales (scopul nostru este cercetarea proprietăţilor fundamentale
ale calculabilităţii şi mai puţin a proprietăţilor MT sau a altui model particular).
4.21. Definiţie
Notăm cu P clasa limbajelor decidabile în timp polinomial de către MT deterministe
cu o singură bandă de intrare:
P TIME (n k )
k N
Proprietatea (a) arată că P este o clasă robustă (nu este afectată de modelul de
calculabilitate particular ales);
Proprietatea (b) arată că P are relevanţă practică. Dacă o problemă P P , înseamnă
că dispunem de o metodă de a o rezolva în timp nk, pentru un k N corespunzător.
Dacă putem sau nu să utilizăm efectiv metoda, aceasta depinde de valoarea lui k.
Evident, un timp de lucru de ordinul n1000 nu este prea utilizabil în realitate. Totuşi,
stabilirea graniţei rezolvabilităţii practice la nivelul polinomial s-a dovedit foarte utilă: odată
ce pentru o problemă cu timp de calcul exponenţial s-a decoperit un algoritm de rezolvare
cu timp de lucru polinomial înseamnă că s-a descoperit aspectul (cauza) care făcea
problema dificil de rezolvat (Atenţie: nu am răspuns astfel întrebării din cursul introductiv!!)
40
Clasa de complexitate TIMP
4.23. Teoremă
PATH = { <G,s,t> | G este un digraf în care există un drum de la nodul s la nodul t } P.
Demonstraţie
Ideea demonstraţiei
Un algoritm care rezolvă problema prin căutare directă nu este suficient de rapid: el
trebuie să examineze toate drumurile din G pentru a veda dacă există unul, orientat, de la
s la t , adică trebuie să examineze un număr de mm drumuri, unde m = numărul de
noduri din G (cel mai lung drum – cel hamiltonian – are m noduri, pentru că ciclurile nu
sunt nici semnificative nici permise)
acest algoritm este exponenţial, deci neinteresant.
Pentru a evita căutarea brută vom utiliza una dintre metodele de parcurgere a grafului, de
exemplu Breadth First, şi vom marca toate nodurile care pot şi atinse din nodul s prin
drumuri de lungime 1 (arce), 2, 3, … , m. Vom demonstra că această strategie este
limitată superior de un polinom.
Formalizare
Următorul algoritm rezolvă problema PATH în timp polinomial:
M = “Fie secvenţa de intrare <G,s,t>, unde G este un digraf oarecare iar s şi t două
noduri oarecare ale sale:
1. Se marchează nodul s.
2. Se repetă pasul următor atât timp cât mai există noduri nemarcate:
3. Se examinează toate arcele din G : dacă există un arc (a,b) de la nodul marcat
a la nodul nemarcat b atunci se marchează nodul b.
41
Clasa de complexitate TIMP
4. Dacă t este marcat atunci M acceptă secvenţa de intrare <G,s,t>, altfel respinge.”
4.24. Teoremă
RELPRIME = { <x,y> | x, y N şi (x,y) = 1 } P.
Demonstraţia: exerciţiu
4.25. Teoremă
Orice limbaj independent de context11 este decidabil în timp polinomial, adică
() L LIC L P .
4.6. Clasa NP
Dacă pentru unele probleme cu timp de calcul exponenţial s-au găsit – mai uşor sau mai
greu – algoritmi care rulează în timp polinomial, pentru altele astfel de algoritmi nu s-au
găsit încă. MOTIVUL NU ESTE CUNOSCUT:
o poate pentru unele dintre ele astfel de algoritmi polinomiali există dar nu au fost încă
descoperiţi pentru că – probabil – folosesc principii şi metode încă necunoscute;
o poate că unele dintre ele pur şi simplu nu pot fi rezolvabile în timp polinomial (sunt
intrinsec dificile).
Vom studia mai atent acest fenomen, începând cu un exemplu, numit HAMILTPATH.
Această problemă constă în a determina existenţa unui drum hamiltonian12 (orientat) între
două noduri oarecare s şi t ale unui digraf G.
11
LIC = clasa limbajelor independente de context
12
Un drum hamiltonian într-un digraf G este un drum care trece prin fiecare nod al digrafului o
data şi numai o dată.
42
Clasa de complexitate TIMP
Formalizat:
HAMILTPATH = {<G,s,t> | G este un digraf care conţine un drum hamiltonian de la s la t}
O altă problemă verificabilă în timp polinomial este problema neprimalităţii unui număr (a
caracterului său de număr compus). Formalizat:
COMPOSITES = { x N | () p, q N, p, q > 1 astfel încât x = p.q }
Deşi nu se cunoaşte un algoritm polinomial care să decidă asupra acestui limbaj (care să
rezolve problema neprimalităţii), verificarea caracterului compus al unui număr natural se
poate face foarte uşor (în timp polinomial): e sufiecient să dispunem de un divizor propriu
al acelui număr13.
4.26. Observaţie
Există şi probleme neverificabile în timp polinomial. De exemplu, complementul problemei
drumului hamiltonian, HAMILTPATH : Să presupunem că găsim un algoritm care să
determine inexistenţa unui drum hamiltonian într-un digraf G; singura metodă prin care
altcineva poate verifica inexistenţa unui astfel de drum constă tot în aplicarea aceluiaşi
algoritm exponenţial care a determinat inexistenţa drumului.
4.27. Definiţie
Un verificator pentru limbajul L este un algoritm V cu proprietatea:
L = { w * | () v * astfel încât V acceptă <w,v> }
Măsurăm timpul necesar unui verificator în funcţie de lungimea cuvântului w
Un verificator polinomial rulează în timp polinomial faţă de lungimea cuvântului w.
Un limbaj L este polinomial verificabil dacă admite un verificator polinomial.
4.28. Observaţie
Cuvântul v * din Definiţia 4.27 reprezintă informaţia auxiliară utilizată de verificator
pentru a verifica apartenenţa cuvântului w * la limbajul L. Acest cuvânt se numeşte
certificat sau dovadă a apartenenţei la L.
Să remarcăm faptul că, în cazul verificatoarelor polinomiale, certificatele au o lungime
polinomială în funcţie de lungimea lui w deoarece aceasta este singura informaţie
accesibilă verificatoarelor în timpul limitat de care dispun.
13
De curând a fost descoperit un algoritm de determinare a caracterului compus sau prim al unui
număr; acest algoritm este insă mult mai complicat decât metoda de verificare a caracterului
compus al unui număr, descrisă mai sus.
43
Clasa de complexitate TIMP
4.29. Exemple
În cazul problemei HAMILTPATH, certificatul corespunzător secvenţei de intrare
<G,s,t> HAMILTPATH este însuşi drumul hamiltonian de la s la t.
În cazul problemei COMPOSITES, certificatul corespunzător numărului natural x
COMPOSITES este unul dintre divizorii acestuia.
În ambele cazuri, dându-se certificatele corespunzătoare, verificatoarele pot verifica în
timp polinomial apartenenţa la limbajul respectiv a secvenţelor de intrare.
4.30. Teoremă
Pentru orice verificator polinomial putem construi o MT nedeterministă cu timp de lucru
polinomial echivalentă şi reciproc.
Demonstraţie
Ideea demonstraţiei
O MT nedeterministă cu timp de lucru polinomial (pe scurt: o MT nedeterminsită
polinomială) simulează un verificator polinomial “ghicind” certificatul.
Un verificator simulează o MT nedeterministă polinomială folosind ca certificat ramura de
calcul care acceptă.
“”
Fie L un limbaj care admite un verificator V polinomial.
Presupunem că V este o MT care rulează în timp nk şi construim MT N astfel:
N = “Fie cuvântul de intrare w *, |w| = n:
1. Selectăm în mod nedeterminist un cuvânt v de lungime cel mult nk.
2. Se rulează V pe intrarea <w,v>.
3. Dacă V acceptă <w,v> atunci şi N acceptă w; altfel respinge.”
Din construcţia de mai sus rezultă imediat că N decide asupra limbajului L în timp
polinomial şi este echivalentă cu V.
““
Fie L un limbaj şi N o MT nedeterministă care rulează în timp polinomial şi decide
asupra limbajului L .
Construim un verificator V polinomial pentru L astfel:
V = “Fie secvenţa de intrare <w,v>, unde w, v *, oarecari:
1. Se simulează N pe intrarea w; fiecare simbol din v este tratat ca o descriere a
alegerii următorului nod din arborele de derivare (alegere care trebuie făcută la
fiecare pas; a se vedea demonstraţia Teoremei 1.11).
2. Dacă această ramură de calcul a lui w din N acceptă atunci şi V acceptă intrarea
<w,v>, altfel respinge.”
Din construcţia de mai sus rezultă imediat că verificatorul V este polinomial şi echivalent
cu N. q.e.d.
4.31. Definiţie
Fie t : N N. Se defineşte clasa de complexitate NTIME (timp polinomial
nedeterministic) prin:
NTIME(t(n)) = { L * | () o MT nedeterministă care decide asupra limbajului L
în timp O(t(n)) }
4.32. Definiţie
NP este clasa limbajelor care admit verificatoare polinomiale.
NP este clasa limbajelor decidabile în timp polinomial de către MT nedeterministe14 cu o
singură bandă de intrare:
14
Conform Teoremei 4.30
44
Clasa de complexitate TIMP
NP NTIME (n k )
k N
4.33. Observaţie
Importanţa clasei NP rezidă în faptul că ea inglobează o serie intreagă de probleme
importante din punct de vedere practic. Şi ea este invariantă la alegerea oricărui model de
calculabilitate “rezonabil” (deoarece toate aceste modele sunt polinomial echivalente).
Vom descrie şi analiza algoritmii nedeterminişti cu timp de calcul polinomial după metoda
folosită în cazul algoritmilor polinomiali determinişti:
arătăm că fiecare etapă a algoritmului are o implementare în timp polinomial
nedeterminist într-un model de calculabilitate nedeterminist “rezonabil”;
arătăm că implementarea fiecărei ramuri de calcul necesită un număr de etape de
ordin polinomial.
4.6.1. Exemple de probleme cu timp de calcul polinomial
nedeterminist
4.34. Teoremă
HAMILTPATH = { <G,s,t> | G este un digraf care conţine un drum
hamiltonian de la s la t } NP.
Demonstraţie
Construim o MT nedeterminsită NH care să decidă asupra limbajului HAMILTPATH în
timp polinomial.
Conform Definiţiei 4.19, timpul de lucru al unei MT nedeterministe este dat de numărul de
paşi necesari celei mai lungi dintre ramurile calculului nedeterminist. Atunci, definim NH
astfel:
NH = “Fie secvenţa de intrare <G,s,t>, unde G este un digraf oarecare iar s, t sunt oricare
două dintre nodurile sale:
1. Se compune o listă de m numere naturale p1, p2, … , pm, unde m = numărul de
noduri ale G. Fiecare număr din listă este ales nedeterminist din mulţimea
{1, 2, …, m}.
2. Dacă lista conţine repetiţii, atunci NH respinge intrarea.
3. Se verifică dacă s = p1 şi t = pm; dacă oricare dintre condiţii nu are loc, atunci NH
respinge intrarea.
4. Pentru fiecare i : 1 i m-1, se verifică dacă (pi, pi+1) este un arc din G; dacă cel
puţin una dintre condiţii nu are loc atunci NH respinge intrarea <G,s,t>; dacă toate
condiţiile sunt îndeplinite atunci NH acceptă.”
45
Clasa de complexitate TIMP
4.35. Teoremă15
CLIQUE = { <G,n> | G este un graf care conţine o n-clică } NP.
4.36. Teoremă16
SUBSET-SUM = { <S,t> | S = {x1, x2, … , xk} şi () {y1, y2, … , yn} {x1, x2, … , xk}
astfel încât yi = t }
De remarcat că {x1, x2, … , xk} şi {y1, y2, … , yn} sunt multiseturi nu mulţimi obişnuite.
De exemplu, < {4,11,16,21,27} , 25 > SUBSET-SUM deoarece 4 + 21 = 25
Nu rezultă imediat că mulţimile CLIQUE şi SUBSET SUM fac parte din NP. E mai
dificil să verificăm absenţa unui elemnt decât prezenţa lui într-o mulţime!
4.37. Definiţie
coNP este clasa limbajelor care sunt complementarele unor limbaje din NP.
Reamintim:
P = clasa limbajelor pentru care apartenenţa poate fi decisă în timp de lucru
polinomial determinist;
NP = clasa limbajelor pentru care apartenenţa poate fi decisă în timp de lucru
polinomial nedeterminist (sau verificată în timp de lucru polinomial determinist).
am considerat – informal – că rezolvabilitatea în timp polinomial este o rezolvabilitate
rapidă.
Puterea verificatoarelor polinomiale pare mult mai mare decât puterea MT decidente
polinomiale. Puterea MT nedeterministe pare, de asemenea, mai mare decât a MT
deterministe (Teorema 1.11 a demonstrat echivalenţa lor dar Teorema 4.20 a arătat
diferenţa în timpul de lucru), în sensul că există probleme pentru care nu se cunosc
algoritmi determinişti polinomiali de rezolvare dar se cunosc algoritmi nedeterminişti
polinomiali. Pe de altă parte, nu putem demonstra că există măcar un limbaj care este în
NP dar nu este în P.
există argumente atât în favoarea tezei P NP cât şi în favoarea tezei P = NP .
15
Fie G un graf neorientat. O clică în G este un subgraf al lui G cu proprietatea că între oricare
două noduri ale sale există o muchie. O n-clică este o clică având n noduri.
Problema clicii constă în a determina dacă un graf dat conţine o clică de o anumită dimensiune.
16
Fie G un graf neorientat. O clică în G este un subgraf al lui G cu proprietatea că între oricare
două noduri ale sale există o muchie. O n-clică este o clică având n noduri.
Problema clicii constă în a determina dacă un graf dat conţine o clică de o anumită dimensiune.
46
Clasa de complexitate TIMP
Cea mai bună metodă cunoscută în prezent pentru a rezolva probleme din clasa NP în
mod determinist necesită timp de lucru exponenţial
putem demonstra că:
k
NP EXPTIME TIME(2 n )
k N
dar nu ştim dacă NP este conţinută într-o clasă de complexitate timp deterministă mai
mică decât EXPTIME.
4.38. Terminologie
Totuşi, din motivul de mai sus şi pe baza Teoremei 4.20, putem face un “abuz” şi putem
să ne referim în continuare la NP
fie ca la clasa problemelor rezolvabile algoritmic în timp polinomial nedeterminist,
fie ca la clasa problemelor rezolvabile algoritmic în timp exponenţial determinist.
4.39. Teoremă
P NP coNP
De fapt, se crede că P NP coNP .
Figura de mai jos descrie relaţiile despre care se presupune că există între clasele de
complexitate definite mai sus. Se crede că toate incluziunile sunt stricte; singurul caz în
care se poate şi demonstra este P EXPTIME.
EXP
NP coNP
P coNP-complete
NP-complete
17
CP
47
Clasa de complexitate TIMP
4.8. NP-completitudine18
4.8.1. Importanţa fenomenului
Un pas important în problema relaţiei dintre clasele P şi N a fost făcut la începutul anilor
1970 de către cercetătorii Stephen COOK şi Leonid LEVIN: ei au identificat o serie de
probleme din clasa NP a căror complexitate proprie este strâns legată de complexitatea
întregii clase.
Dacă s-ar descoperi un algoritm cu timp de lucru polinomial pentru oricare dintre aceste
probleme,atunci toate problemele din NP ar fi rezolvabile în timp polinomial (determinist).
De aceea, aceste probleme se numesc NP-complete.
Demonstraţie
Metoda folosită este reductibilitatea polinomială a timpului de lucru, unde
18
MS
19
Satisfiability Problem
20
satisfiable
48
Clasa de complexitate TIMP
4.41. Definiţie
Funcţia f: * * se numeşte calculabilă în timp polinomial (prescurtat: polinomial
calculabilă) există o MT cu timp de lucru polinomial care, oricare ar fi secvenţa de
intrare w *, se opreşte, având pe bandă secvenţa f(w).
4.42. Definiţie
Fie limbajele A, B *. Limbajul A se numeşte reductibil funcţional în timp
polinomial (prescurtat polinomial reductibil) la limbajul B şi se notează prin A P B
() f : * * polinomial calculabilă astfel încât () w *: w A f(w) B.
Funcţia f se numeşte reducerea polinomială a lui A la B.
Rezumat
49
Clasa de complexitate SPATIU
Motivul: timpul şi spaţiul sunt doi dintre cei mai importanţi parametri care trebuie luaţi în
considerare atunci când se caută soluţii efective pentru cele mai multe dintre problemele
de calcul.
5.1. Definiţie
(i) Fie M o MT deterministă care se opreşte, oricare ar fi secvenţa pe care o primeşte pe
banda de intrare.
Se numeşte complexitatea spaţiu determinist a M o funcţie
f : N N , f(n) = numărul maxim de locaţii de pe banda de intrare pe care le scanează
M atunci când primeşte o secvenţă de intrare de lungime n, ()nN.
Mai spunem că M rulează într-un spaţiu de memorie egal cu f(n).
5.2. Observaţie
Vom estima complexitatea spaţiu a maşinilor Turing tot cu ajutorul notaţiei asimptotice.
5.3. Definiţie
Fie f : N R+. Definim clasele de complexitate SPACE(f(n)) şi NSPACE(f(n)) astfel:
SPACE(f(n)) = { L * | () o MT deterministă care decide asupra limbajului L
într-un spaţiu O(f(n)) }
NSPACE(f(n)) = { L * | () o MT nedeterministă care decide asupra limbajului L
într-un spaţiu O(f(n)) }
5.4. Exemple
(1) Una dintre cele mai cunoscute probleme NP-complete este SAT (problema evaluării:
satisfiability problem). Am afirmat că SAT nu poate fi rezolvată cu un algoritm cu timp de
lucru polinomial (şi cu atât mai puţin cu un algoritm cu timp de lucru linear).
Vom da aici un algoritm pentru rezolvarea SAT cu spaţiu linear. O justificare: spre
deosebire de timp, spaţiul poate fi refolosit resursa spaţiu pare să fie mai puternică
decât resursa timp.
50
Clasa de complexitate SPATIU
Soluţie
N = “Fie secvenţa de intrare <A>, unde A este un AFN:
1. Se marchează starea iniţială a lui A.
2. Se repetă etapa a treia de 2q ori, unde q = numărul de stări ale A.
3. Se selectează nedeterminist un simbol de intrare şi se remarchează stările lui A
pentru a simula citirea acelui simbol.
4. Dacă în etapele 2 şi 3 apare o secvenţă pe care A o respinge (adică dacă la un
moment dat nici una dintre stările de acceptare ale lui A nu este marcată) atunci N
acceptă secvenţa de intrare <A>; altfel o respinge.”
Dacă există secvenţe din * pe care A le respinge atunci printre ele trebuie să se afle
una de lungime cel mult 2q , deoarece în cazul tuturor secvenţelor de lungime mai mare,
respinse de A, locaţiile markerilor descrişi în algoritmul de mai sus ar trebui să se repete
(A are prin ipoteză doar q stări). Porţiunea din secvenţă cuprinsă între repetiţii poate fi
eliminată pentru a se obţine astfel o secvenţă respinsă, mai scurtă. Prin urmare, N
decide asupra limbajului ALL AFN . (Se observă că N acceptă şi secvenţa de intrare
incorect formate.)
Acest algoritm necesită spaţiu de memorie suplimentar numai pentru stocarea locaţiilor
markerilor şi a contorului de ciclare, deci necesită spaţiu linear. Prin urmare, algoritmul
rulează în spaţiu nedeterminist de ordinul O(n).
51
Clasa de complexitate SPATIU
Demonstraţie
Ideea demonstraţiei
Pentru a simula o MTN cu spaţiu de lucru de ordinul f(n) în mod determinist am putea
încerca să verificăm, una câte una, ramurile de calcul ale acelei MTN. Simularea trebuie
să marcheze ramura curent prelucrată pentru a putea trece la prelucrarea ramurii
următoare. Fiecare dintre aceste ramuri de calcul (care utilizează f(n) locaţii de pe banda
O(f(n))
de intrare) poate executa un număr de paşi de ordinul 2 iar fiecare pas ar putea fi
ales în mod nedeterminist.
Examinarea secvenţială a ramurilor de calcul ar necesita – pentru fiecare ramură –
memorarea paşilor executaţi ar fi nevoie de 2O(f(n)) locaţii de memorie, deci mult mai
mult decât O(f2(n))!
Este necesară o altă abordare: vom rezolva o problemă mai generală, numită
PROBLEMA TRANZITIEI21: fie două configuraţii c1 = uaqrbv şi c2 = zcqsdw (a,b,c,d ,
u,v,z,w *, qr, qs Q) ale unei MTN şi un număr t N; trebuie să verificăm dacă MTN
poate trece din configuraţia c1 în configuraţia c2 în t paşi.
Rezolvând PROBLEMA TRANZITIEI pentru
o c1 = configuraţia de start a MTN;
o c1 = configuraţia de acceptare a MTN;
o t = numărul maxim de paşi pe care îi poate face MTN.
putem verifica dacă MTN acceptă secvenţa de intrare primită.
Acest algoritm are nevoie de spaţiu pentru a memora informaţia din stiva recursivă.
Fiecare nivel al recurenţei utilizează pentru memorarea unei configuraţii un număr de
locaţii de memorie de ordinul O(f(n)). Adâncimea recurenţei este log(t), unde t = timpul
maxim utilizat de MTN pe o ramură oarecare de calcul. Stim că
t = 2O(f(n)) log(t) = O(f(n))
simularea deterministă necesită O(f2(n)) locaţii de memorie.
21
Yieldability Problem
52
Clasa de complexitate SPATIU
Formalizare
Fie N o MTN care decide asupra limbajului L în spaţiu f(n). Construim o MTD M care
să decidă asupra limbajului L. Maşina M va utiliza o procedură, TRANZ, care verifică
dacă o configuraţie oarecare a lui N poate produce o altă configuraţie într-un anumit
număr de paşi. Această procedură rezovă PROBLEMA TRANZITIEI descrisă mai sus.
Justificare
Evident, algoritmul TRANZ rezolvă PROBLEMA TRANZITIEI şi, prin urmare, M
simulează corect N. Mai trebuie să demonstrăm că M lucrează cu spaţiu O(f2(n)).
În justificarea de mai sus apare o dificultate tehnică: atunci când apelează procedura
TRANZ, algoritmul M trebuie să cunoască valoarea lui f(n). Soluţia constă în modificarea
53
Clasa de complexitate SPATIU
lui M astfel încât M să încerce pe rând diverse valori pentru f(n): f(n) = 1, 2, 3, …Pentru
fiecare valoare f(n) = i algoritmul M modificat utilizează TRANZ pentru a verifica dacă
se poate ajunge în configuraţia de acceptare. De asemenea, M utilizează procedura
TRANZ pentru a verifica dacă N foloseşte cel puţin (i+1) locaţii, astfel:
fie f(n) = i; algoritmul M modificat utilizează procedura TRANZ pentru a verifica dacă N
poate ajunge din configuraţia de start în una dintre configuraţiile de lungime i+1:
dacă nici una dintre configuraţiile de lungime i+1 nu este atinsă atunci M respinge;
dacă este atinsă una dintre configuraţiile de lungime i+1 şi aceasta este o configuraţie de
acceptare atunci M acceptă;
dacă este atinsă una dintre configuraţiile de lungime i+1 şi aceasta nu este o configuraţie
de acceptare atunci M continuă cu f(n) = i+1.
q.e.d.
5.6. Observaţie
Teorema este adevărată şi pentru funcţii f: N R+ cu proprietatea: f(n) log(n).
5.7. Definiţie
Notăm cu PSPACE clasa limbajelor decidabile în spaţiu polinomial de către MT
deterministe cu o singură bandă de intrare:
PSPACE SPACE (n k )
k N
Notăm cu NPSPACE clasa limbajelor decidabile în spaţiu polinomial de către MT
nedeterministe cu o singură bandă de intrare:
NPSPACE NSPACE (n k )
k N
5.8. Corolar
PSPACE = NPSPACE
Demonstraţie
Rezultă din Teorema lui Savitch şi din faptul că pătratul unui polinom este încă un
polinom.
5.10. Conjectura privind relaţia dintre diferitele clase de complexitate timp şi spaţiu
(i) P PSPACE
Fie funcţia t: N N, t(n) n, () n N; orice MT care rulează în timp t(n) poate
utiliza cel mult t(n) celule de pe banda de intrare deoarece la fiecare pas de calcul ea nu
poate examina decât cel mult o celulă.
54
Clasa de complexitate SPATIU
(ii) NP PSPACE
Cu un raţionament analog rezultă că NP NPSPACE. Aplicând Observaţia 5.8
obţinem: NP PSPACE.
(iii) Reciproc, putem găsi o majorare pentru complexitatea timp a unei MT în funcţie de
complexitatea spaţiu.
Stim că o configuraţie a unui automat (AFD, …, MT) constă dintr-o stare, o combinaţie de
simboluri de intrare (secvenţa de intrare de o anumită lungime, n) şi, eventual, poziţia
cursorului pe bandă. Se demonstrează că un automat linear mărginit (ALM) cu q stări
care citeşte un cuvânt de lungime n de pe banda de intrare şi care dispune de un alfabet
de intrare cu s elemente poate avea cel mult q.n.sn configuraţii distincte.
Dacă generalizăm acest rezultat anterior rezultă imediat că o MT care utilizează f(n) locaţii
de memorie, unde f(n) n, este o funcţie definită pe N cu valori în N, poate avea cel mult
O(f(n))
f(n).2 configuraţii distincte.
5.11. Observaţie
Nu se ştie încă dacă vreuna dintre incluziuni nu este de fapt chiar o egalitate. S-ar putea
descoperi oricând o simulare asemănătoare celei din demonstraţia Teoremei lui Savitch
care să permită fuzionarea unora dintre aceste clase într-o singură clasă.
PSPACE=
P NP NPSPACE EXPTIME
55
Clasa de complexitate SPATIU
5.4. PSPACE-completitudine
Am studiat problemele NP-complete şi am arătat că ele reprezintă categoria celor mai
dificile limbaje din clasa NP . Dacă o problemă este NP-completă atunci este destul de
sigur că ea nu este în clasa P (dacă ar fi, atunci clasele P şi NP ar fi egale).
5.12. Definiţie
Un limbaj B este PSPACE-complet dacă şi numai dacă satisface următoarele două
condiţii:
(1) B PSPACE
(2) () A PSPACE A P B (A este polinomial reductibil la B)
Dacă limbajul B satisface numai condiţia (2) atunci spunem că el este PSPACE-dificil
(PSPACE-hard).
5.13. Observaţie
Motivul pentru care definim PSPACE-completitudinea tot în termenii reductibilităţii în timp
polinomial este legat de esenţa definiţiei problemelor complete: Problemele complete sunt
importante pentru că ele sunt exemple de probleme dintre cele mai dificile din clasa lor de
complexitate. O problemă completă este foarte dificilă pentru că orice altă problemă din
clasa respectivă se poate reduce uşor la ea astfel încât, dacă găsim o meotdă simplă de a
rezolva problema completă atunci vom putea rezolva uşor toate celelalte probleme din
clasa respectivă. Pentru ca acest raţionament să fie valabil, este necesar ca reducerea să
fie simplă în raport cu tipul de complexitate a problemelor specifice clasei. Regula este:
oridecâteori definim probleme complete pentru o anumită clasă de complexitate, modelul
de reductibilitate trebuie să fie mai limitat decât modelul folosit pentru a defini clasa însăşi.
5.4.1. Problema TQBF
5.14. Definiţie
O formulă booleeană complet cuantificată22 (numită şi propoziţie) este o formulă
booleeană în care fiecare variabilă este cuantificată.
5.15. Exemplu
= ()x ()y [(x y) (x y)] este o formulă booleeană complet cuantificată.
5.16. Definiţie
Problema TQBF constă în verificarea valorii de adevăr a unei formule booleene complet
cuantificată (a unei propoziţii) oarecare şi este formalizată prin limbajul:
TQBF = {<> | este o propoziţie adevărată }
5.17. Teoremă
TQBF este o problemă PSPACE-completă.
Ideea demonstraţiei
Pentru a demonstra că TQBF PSPACE construim un algoritm care asignează valori
de adevăr variabilelor din formulă şi apoi evaluează recursiv valoarea de adevăr a
acesteia. Pe baza acestei informaţii, algoritmul poate determina dacă formula dată este
sau nu adevărată.
pentru a arăta că toate limbajele L din PSPACE se reduc polinomial la TQBF
22
Fully Quantified Boolean Formula
56
Clasa de complexitate SPATIU
5.18. Teoremă
Limbajul
Formula-joc = {< > | jucătorul E are o strategie câştigătoare pentru formula-joc
asociată formulei booleene complet cuantificate }
este PSPACE-complet
(2) Să considerăm acum un alt joc, numit jocul geografic sau Antakhshari, relativ la
numele oraşelor. El poate fi modelat printr-o problemă de grafuri orientate:
fiecare nod din digraf este etichetat cu numele unui oraş
există un arc de la nodul u la nodul v dacă ultima literă a etichetei nodului u
coincide cu prima literă a etichetei nodului v.
Jocul începe într-un nod oarecare, fixat; cei doi jucători se deplasează alternativ în digraf,
de-a lungul arcelor, în noduri nevizitate încă. Jucătorul care nu reuşeşte să facă o nouă
deplasare pierde. Jocul poate fi generalizat la un digraf arbitrar (în care nodurile şi arcele
nu mai au nici o legatura cu oraşele sau literele) şi un nod predeterminat. Problema
constă în a determina dacă primul jucător are o strategie câştigătoare. Avem astfel:
5.19. Teoremă
Limbajul
Joc-geografic = {<G,s> | primul jucător are o strategie câştigătoare pentru
jocul Antakhshari generalizat în digraful G,
dacă jocul începe din nodul s }
este PSPACE-complet.
Ideea demonstraţiei
Pentru a demonstra teorema ar trebui să găsim o reducere în timp polinomial a problemei
Formula-joc la problema Joc-geografic. Intrucât se crede că P PSPACE este de
presupus că nu există nici un algoritm cu timp de lucru polinomial care să-i permită
primului jucător să verifice existenţa unei strategii câştigătoare, cu atât mai puţin să o
determine.
23
CP
57
Clasa de complexitate SPATIU
5.20. Definiţie
O MT cu spaţiu logaritmic este o MT care are:
o bandă de intrare, finită, de tip read-only, pe care se află permanent secvenţa de
intrare şi numai ea;
o bandă de lucru infinită de tip read/write, obişnuită.
o pe banda de intrare cursorul poate doar citi simbolurile dar nu poate scrie (vom
introduce o convenţie pentru a determina situaţia în care cursorul a ajuns în
extremitatea stângă / dreaptă a benzii de intrare deoarece el trebuie să rămână
permanent numai pe proţiunea benzii care conţine informaţie);
o pe banda de lucru cursorul poate citi şi/sau scrie simboluri în mod normal.
numai celulele scanate de cursor pe banda de lucru determină complexitatea spaţiu a
acestui tip de MT.
Unitatea de control
5.21 Definiţie
Fie M o MT dotată cu o bandă de intrare separată de tip read-only;
cuvântul de intrare w *
o configuraţie a lui M pentru intrarea w trebuie să descrie:
starea maşinii,
secvenţa de pe banda de lucru şi
proziţiile celor două cursoare.
De remarcat faptul că secvenţa w de pe banda de intrare nu face parte din configuraţie;
motivul: banda de intrare conţine – neschimbată, pe parcursul intregului calcul – tocmai
secvenţa w.
24
MS
58
Clasa de complexitate SPATIU
5.22. Observaţie
Putem asimila această MT cu spaţiu sublinear cu un calculator a cărui memorie principală
este destul de mică dar care totuşi poate manipula cantităţi mult mai mari de date (stocate
de exemplu pe un CD-ROM, DVD etc.) fără a le depune complet în memoria principală.
5.23. Observaţie
Dacă spaţiul de lucru al acestei MT cu 2 benzi este de ordin cel puţin linear atunci ea este
echivalentă cu o MT standard. Pentru spaţiu de lucru de ordin sublinear nu putem utiliza
ca model de calcul decât MT cu două benzi descrisă mai sus.
5.24. Lemă25
Fie M o MT cu spaţiu logaritmic (conform Definiţiei 5.22) , mărginit de o funcţie f(n).
(1) numărul configuraţiilor lui M pentru o secvenţa de intrare de lungime n este de cel
mult n.2O(f(n));
(2) dacă f(n) log n atunci acest număr este de 2O(f(n)).
Demonstraţie26
(1) Să presupunem că M are s stări şi b simboluri în alfabetul benzii. numărul de
cuvinte care pot apărea pe banda d elucru este bf(n).
Cursorul benzii de intrare poate avea n poziţii iar cel al benzii de lucru f(n) poziţii.
numărul total de configuraţii ale M pentru w , care este o limită superioară pentru
timpul de calcul al M pentru w , este s.n.f(n) .bf(n), sau n.2O(f(n))
(2) rezultă imediat din (1) şi din ipoteza f(n) log n. q.e.d.
Tratăm ordinul de complexitate log n (în loc de n sau log2 n) deoarece spaţiul
logaritmic este suficient de mare pentru a stoca pointeri către secvenţa de intrare ceea ce
permite rezolvarea unor probleme computatioanle interesante. În plus, spaţiul logaritmic
are proprietăţi matematice remarcabile (precum robusteţea). Clasele N şi NL , şi mai
exact algoritmii de reducere cu spaţiu logaritmic sunt foarte utili atunci când trebuie să
facem distincţie între diferitele probleme “uşoare”, cum sunt cele din clasa P .
5.25 Definiţie
Notăm cu L clasa limbajelor decidabile de către o MT deterministă in spaţiu de lucru
logaritmic:
L = SPACE(log n)
Notăm cu NL clasa limbajelor decidabile de către o MT nedeterministă in spaţiu de lucru
logaritmic:
NL = NSPACE(log n)
5.26. Exemple27
(1) Limbajul L1 = { 0k1k {0,1}* | k 0 } L.
Aşa cum am arătat mai sus, o MT cu 2 benzi care primeşte la intrare un cuvânt w
{0,1}* începe prin a verifica dacă w are forma corectă; această etapă a algoritmului nu
necesită spaţiu suplimentar. Dacă w este corect format, adică w = 0k1h , numerele k şi
h sunt memorate pe banda de lucru şi comparate unul cu celălalt. Cum k şi h pot fi
memorate pe bandă în format binar utilizând O(log n) biţi, rezultă că banda de lucru
utilizează un spaţiu de lucru de ordin algoritmic.
25
CP
26
MS
27
CP
59
Clasa de complexitate SPATIU
5.27. Observaţie28
O(f(n))
Am arătat că orice MT cu spaţiu de lucru f(n) rulează în timp 2 . Această proprietate
nu mai este adevărată pentru MT cu spaţiu de lucru de mici dimensiuni: de exemplu, o MT
care rulează cu spaţiu de lucru O(1) (adică o constantă) poate rula în n paşi. Definiţia
următoare ne permite să obţinem limite superioare pentru timpul de lucru al MT care să se
aplice şi în cazul spaţiului de lucru mărginit de orice funcţie f(n).
5.28. Observaţie
Teorema lui Savitch demonstrează faptul că transformarea unei MTN într-o MTD
determină o creştere a complexităţii spaţiu de la f(n) doar la f 2(n), dacă f(n) n. Putem
generaliza Teorema lui Savitch şi la MT cu spaţiu sublinear de tip f(n) log n.
Demonstraţia este similară celei iniţiale dar cu două deosebiri:
se foloseşte o MT cu spaţiu logaritmic (vezi Definiţia 5.20);
în locul configuraţiilor MTN N se utilizează configuraţii ale N pentru w .
Memorarea unei configuraţii a lui N pentru w necesită
log(n.2O(f(n))) = log n + O(f(n)) locaţii.
Dacă f(n) log n atunci spaţiul folosit este de ordin O(f(n)) , restul demonstraţiei
rămânând la fel.
5.6. NL-completitudine29
Problema PATH ilustrează posibilitatea ca L NL. Pentru a aborda această conjectură –
nedemonstrată încă, asemenea conjecturii P NP – este necesar să analizăm
problemele NL-complete. Conform Lemei 5.26, L P reductibilitatea polinomială nu
este adecvată pentru compararea problemelor din NL după dificultatea lor. Trebuie
utilizate reduceri mai “simple”.
5.29. Definiţie
Un transducer cu spaţiu logaritmic (log-space transducer) este o MT care are:
o bandă de intrare, finită, de tip read-only, pe care se află permanent secvenţa de
intrare şi numai ea;
o bandă de ieşire, eventual infinită, de tip write-only;
o bandă de lucru infinită de tip read/write, obişnuită.
Pentru un cuvânt de intrare w de lungime n transducerul utilizează (scanează) O(log n)
simboluri de pe banda sa de lucru şi îşi încheie calculul având pe banda de ieşire cuvântul
f(w) (şi nimic altceva).
numai celulele scanate de cursor pe banda de lucru determină complexitatea spaţiu a
acestui tip de MT.
28
MS
29
CP
60
Clasa de complexitate SPATIU
Unitatea de control
Banda de ieşire de tip write-only
5.30. Definiţie
Funcţia f: * * se numeşte calculabilă în spaţiu logaritmic există un transducer
spaţiu logaritmic care, oricare ar fi secvenţa w * de pe banda de intrare, se opreşte,
având pe banda de ieşire secvenţa f(w).
5.31. Definiţie
Fie limbajele A, B *. Limbajul A se numeşte reductibil funcţional în spaţiu
logaritmic la limbajul B şi se notează prin A L B () f : * * calculabilă în
spaţiu logaritmic astfel încât () w *: w A f(w) B.
5.32. Definiţie
Un limbaj L se numeşte NL-complet dacă satisface următoarele două condiţii:
(1) L NL;
(2) () A NL: A L L .
5.33. Teoremă
Dacă A L B şi B L atunci şi A L.
5.34. Teoremă
Dacă A L B şi A este NL-complet atunci şi B este NL-complet.
5.35. Teoremă
Dacă există un limbaj L NL-complet cu proprietatea că L L , atunci L =NL.
5.36. Teoremă
PATH este NL-complet.
5.37 Corolar
NL P .
5.38. Teoremă
NL = coNL.
Ideea demonstraţiei
coNL = { L | L = A , A NL }
61
Clasa de complexitate SPATIU
5.39. Teoremă
PolyL PSPACE
unde
PolyL NLk
k N
este una dintre clasele de algoritmi cu spaţiu de lucru logaritmic super-linear
5.40. Observaţie
Relaţiile dintre clasele de complexitate spaţiu şi timp – cunoscute în prezent – sunt:
L NL = coNL P PSPACE
Nu ştim dacă vreuna dintre aceste incluziuni este strictă (deşi, într-un corolar din Cursul 9,
demonstrăm că P PSPACE). Prin urmare, fie coNL P fie P PSPACE are loc dar
nu ştim care dintre ele! Cei mai mulţi dintre cercetători presupun că toate aceste incluziuni
sunt stricte.
Rezumat
62