Sunteți pe pagina 1din 317

LIMBAJE REGULATE (RECAPITULARE)

1.
2.

Exemple practice de automate finite deterministe (AFD);


Definitia formala a unui AFD,
moduri de descriere;
limbaj recunoscut de un AFD

3.
4.
5.

O metoda de definire a unui AFD care sa recunoasca un limbaj


dat
Lema de pompare pentru limbaje regulate
Automate finite nedeterministe
definitie
echivalenta

6.
7.

Operatii de inchidere (regulate)


Expresii regulate
definitie
echivalenta
1

LIMBAJE REGULATE (RECAPITULARE)


Diferentele dintre un AFD si un AFN sunt:

1) qQ: pentru fiecare simbol a:


in AFD pleaca o singura sageata,
0,
in AFN pleaca
1, sau
mai multe sageti;
2) Sagetile sunt etichetate:
in AFD: cu simboluri din ,
cu simboluri din ,
in AFN:
cu simbolul vid, .
3) Modul de calcul

LIMBAJE REGULATE (RECAPITULARE)


Definitie
AFN = (Q, , , q0, F), unde:
Q = multime finita, nevida, ale carei elemente se
numesc stari;
= multime finita, nevida, numita alfabet de intrare,
ale carei elemente se numesc simboluri;
: Q x ( {}) P(Q), numita functia de tranzitie;
q0 Q, numita starea initiala;
FQ numita multimea starilor finale.
Notatie
= {})
3

LIMBAJE REGULATE (RECAPITULARE)


Exemplu
AFN care recunoaste limbajul:
L2= { w* | u,v : w=u101v sau w=u11v}
Teorema
AFN AFD
Corolar
L*, LL3: AFN care recunoaste L.

LIMBAJE REGULATE (RECAPITULARE)


1.
2.

Exemple practice de automate finite deterministe (AFD);


Definitia formala a unui AFD,
moduri de descriere;
limbaj recunoscut de un AFD

3.
4.
5.

O metoda de definire a unui AFD care sa recunoasca un limbaj


dat
Lema de pompare pentru limbaje regulate
Automate finite nedeterministe
definitie
echivalenta

6.
7.

Operatii de inchidere (regulate)


Expresii regulate
definitie
echivalenta
5

LIMBAJE REGULATE
(RECAPITULARE)
Definitie
Operatii de inchidere = operatii regulate =
reuniunea,
concatenarea,
operatia star (*).
Teorema
L3 este inchisa la reuniune, concatenare, operatia
star.
6

LIMBAJE REGULATE (RECAPITULARE)


1.
2.

3.
4.
5.

6.
7.

Exemple practice de automate finite deterministe (AFD);


Definitia formala a unui AFD,
moduri de descriere;
limbaj recunoscut de un AFD
O metoda de definire a unui AFD care sa recunoasca un limbaj
dat
Lema de pompare pentru limbaje regulate
Automate finite nedeterministe
definitie
echivalenta
Operatii de inchidere (regulate)
Expresii regulate
definitie
echivalenta
7

LIMBAJE REGULATE (RECAPITULARE)

Definitie
Expresie regulata =
o expresie R care satisface una dintre urmatoarele conditii:
1.a este o expresie regulata (reprezentand limbajul {a} *);
2. este o expresie regulata (reprezentand limbajul {} *);
3. este o expresie regulata (reprezentand limbajul vid);
4.daca R1 si R2 sunt expresii regulate
(R1R2) este o expresie regulata,
(R1oR2) este o expresie regulata,
(R1*) este o expresie regulata.
Exemplu
(01)0*
8

LIMBAJE REGULATE (RECAPITULARE)

Teorema
L*, LL3: o expresie regulata R peste care descrie L.
Definitie
AFNG = (Q, , , qstart, qaccept), unde:
Q = multime finita, nevida, ale carei elemente se numesc stari;
= multime finita, nevida, numita alfabet de intrare, ale carei
elemente se numesc simboluri;
qstart Q, numita starea initiala;
qaccept Q, numita starea finala;
: (Q \ {qaccept }) x (Q \ { qstart }) R, numita functia de tranzitie.

LIMBAJE REGULATE (RECAPITULARE)


1.
2.

3.
4.
5.

6.
7.

Exemple practice de automate finite deterministe (AFD);


Definitia formala a unui AFD,
1. moduri de descriere;
2. limbaj recunoscut de un AFD
O metoda de definire a unui AFD care sa recunoasca un limbaj
dat
Lema de pompare pentru limbaje regulate
Automate finite nedeterministe
definitie
echivalenta
Operatii de inchidere (regulate)
Expresii regulate
definitie
echivalenta
10

LIMBAJE INDEPENDENTE DE CONTEXT


(RECAPITULARE)
1. Definitii
gramatica
gramatica independenta de context
limbaj independent de context
2. Forme normale
definitie
exemple
aducerea la forma normala Chomsky
3. Lema de pompare
4. Operatii de inchidere
L2 este inchisa la reuniune, concatenare, operatia *,
omomorfism
L2 nu este inchisa la intersectie si complementara
5. Automatul pushdown
1

LIMBAJE INDEPENDENTE DE CONTEXT


(RECAPITULARE)
{0n1n | n 0}
memoria finita a unui AFD nu poate memora numere n
foarte mari.
gramaticile independente de context (GIC)
structura recursiva
Domenii de utilizare a GIC:
studiul limbilor naturale,
Domenii de aplicabilitate
specificarea si compilarea limbajelor de programare
sintaxa unui limbaj de programnare
parsere
2

LIMBAJE INDEPENDENTE DE CONTEXT


(RECAPITULARE)

Reamintim ca:
1. Limbajele generate / descrise de G.I.C. se
numesc L.I.C.;
2. Clasa L2 L3;
3. Un mecanism, care s-a dovedit a fi echivalent
cu cel al G.I.C., este constituit de APD.

LIMBAJE INDEPENDENTE DE CONTEXT


(RECAPITULARE)
Definitia 1
Gramatica = (V,, P, S) unde:
V = multime finita, nevida, ale carei elemente se
numesc variabile sau neterminale;
= multime finita, nevida, numita alfabet de
intrare, ale carei elemente se numesc
terminale; V=;
P = multime finita, nevida, ale carei elemente se
numesc productii sau reguli de substitutie;
SV se numeste variabila (simbolul) de start.
4

LIMBAJE INDEPENDENTE DE CONTEXT


(RECAPITULARE)
Exemplu
G1=({A,B}, {0,1,#}, {A 0A1 | B, B #}, A)

A
A

Reprezentarea derivarilor:

linear:
A0A100A11000A11103B1303#13

sintetic:
A G* 03#13

arbore de derivare:
0

A
A
B
0

LIMBAJE INDEPENDENTE DE CONTEXT


(RECAPITULARE)
Definitia 2
Gramatica independenta de context = (V,, P, S) a.i.
P: ||=1 si V.
Definitia 3
Limbaj independent de context = L.I.C. =
L(G)={ w * | S G* w si G=G.I.C. }
Exemplu
G2=({S}, {a,b}, {S aSb | SS | }, S)
L2={, ab, anbn, anbabn, an(ba)kbn, }.
6

LIMBAJE INDEPENDENTE DE CONTEXT


(RECAPITULARE)
1. Definitii
gramatica
gramatica independenta de context
limbaj independent de context
2. Forme normale
definitie
exemple
aducerea la forma normala Chomsky
3. Lema de pompare
4. Operatii de inchidere
L2 este inchisa la reuniune, concatenare, operatia *,
omomorfism
L2 nu este inchisa la intersectie si complementara
5. Automatul pushdown
7

LIMBAJE INDEPENDENTE DE CONTEXT


(RECAPITULARE)
Definitia 4
G G.I.C. se afla in forma normala GREIBACH
(FNG)
p P, p : A aB, unde:
A V,
a
B (V )*.
Teorema 1
L=L(G) L.I.C., L: G in FNG a.i. L=L(G).
8

LIMBAJE INDEPENDENTE DE CONTEXT


(RECAPITULARE)
Definitia 5
G G.I.C. se afla in forma normala CHOMSKY
(FNC)
p P, p : A BC sau A a, unde:
A,B,C V, B S C,
a ,
In plus, S P.
Teorema 2
L=L(G) L.I.C.: G in FNC a.i. L=L(G).
9

LIMBAJE INDEPENDENTE DE CONTEXT


(RECAPITULARE)
1. Definitii
gramatica
gramatica independenta de context
limbaj independent de context
2. Forme normale
definitie
exemple
aducerea la forma normala Chomsky
3. Lema de pompare
4. Operatii de inchidere
L2 este inchisa la reuniune, concatenare, operatia *,
omomorfism
L2 nu este inchisa la intersectie si complementara
5. Automatul pushdown
10

LIMBAJE INDEPENDENTE DE CONTEXT


(RECAPITULARE)
Lema de pompare pentru L.I.C.
Fie A *, AL.I.C. =>
pN (constanta=lungimea de pompare) a.i.
sA, |s| p u,v,x,y,z* cu proprietatile:
(i) s = uvxyz,
(ii) i o: uvixyiz A,
(iii) |vy| > 0,
(iv) |vxy| p.
11

LIMBAJE INDEPENDENTE DE CONTEXT


(RECAPITULARE)
S

Ideea demonstratiei

.
.
.
.

X
.
.
.
.

X
u

12

LIMBAJE INDEPENDENTE DE CONTEXT


(RECAPITULARE)
i=2
S

i=0

.
.
.

S
.
.
.

.
.
.

X
.
.
.

X
u

y
v

13

LIMBAJE INDEPENDENTE DE CONTEXT


(RECAPITULARE)
Definitii 6

L1,L2*:
L1L2={w*| wL1 sau wL2},
L1L2={w*| wL1 si wL2},
L1 \ L2={w*| wL1 si wL2},
L1 o L2={w1w2*| wL1 si wL2},
mi(L)={mi(w)| wL}.

L = {w * | w L} = * \ L,

L0 = si
:
n
L
n +1 = L Ln = L Ln , n N ,

L = L = ,
L {} = {} L = L,
i
i
*
+
L = L , L = L .
i =0
i =1

14

LIMBAJE INDEPENDENTE DE CONTEXT


(RECAPITULARE)
Lema 3
L.I.C. este inchisa la reuniune, concatenare si
operatia *.
Lema 4
L.I.C. este inchisa la operatia mirror si la
omomorfism.
Lema 5
L.I.C. NU este inchisa la intersectie si
complementara.
15

LIMBAJE INDEPENDENTE DE CONTEXT


(RECAPITULARE)
1. Definitii
gramatica
gramatica independenta de context
limbaj indpendent de context
2. Forme normale
definitie
exemple
aducerea la forma normala Chomsky
3. Lema de pompare
4. Operatii de inchidere
L2 este inchisa la reuniune, concatenare, operatia *,
omomorfism
L2 nu este inchisa la intersectie si complementara
5. Automatul pushdown
16

LIMBAJE INDEPENDENTE DE CONTEXT


(RECAPITULARE)
APD reprezinta un nou model de calculabilitate
Stiva
APD
AFN
controlul
starilor

controlul
starilor

b
a

{0n1n | nN}
17

LIMBAJE INDEPENDENTE DE CONTEXT


(RECAPITULARE)

Observatii
AFD AFN
APDN APD
APDN, APD;
{0n1n | n 0}:
{wwr | w{0,1}*}: APDN.

18

LIMBAJE INDEPENDENTE DE CONTEXT


(RECAPITULARE)

Deosebiri intre APD si AFD:


(i) Doua alfabete, si
(ii) dom() = Q x ({}) x ({})
(iii) codom() = P(Q x ({}).

19

LIMBAJE INDEPENDENTE DE CONTEXT


(RECAPITULARE)

Definitia 7
Automat pushdown=APD=(Q, , , , q0, F), unde:
Q = multime finita, nevida, ale carei elemente se numesc stari;
= multime finita, nevida, numita alfabet de intrare, ale carei
elemente se numesc simboluri, ( = {});
= multime finita, nevida, numita alfabetul stivei, ( = {});
: Q x x P(Q x ), numita functia de tranzitie;
q0 Q, numita starea initiala;
FQ numita multimea starilor finale.
20

LIMBAJE INDEPENDENTE DE CONTEXT


(RECAPITULARE)
Notatie

a,b

qi

qj

Observatie
(i) Metoda standard de testare a vidarii stivei: $ ;
(ii) Metoda standard de testare a terminarii secventei de
intrare: trecerea intr-o stare finala.
Teorema 3
Fie L *. Atunci:
G G.I.C.: L=L(G) A APD: L=L(A).
21

LIMBAJE INDEPENDENTE DE CONTEXT


(RECAPITULARE)
1. Definitii
gramatica
gramatica independenta de context
limbaj independent de context
2. Forme normale
definitie
exemple
aducerea la forma normala Chomsky
3. Lema de pompare
4. Operatii de inchidere
L2 este inchisa la reuniune, concatenare, operatia *,
omomorfism
L2 nu este inchisa la intersectie si complementara
5. Automatul pushdown
22

Masini Turing

1. Exemple
2. Definitia formala
3. Limbaje Turing-recunoscute si limbaje Turingdecidabile

Masini Turing

unitate de
control

Masini Turing

MT poate sa simuleze

orice calculator real

orice limbaj de programare.

Masini Turing
Exemplul 1
Fie L = {w#w | w{0,1}*}. Construim o MT care sa testeze
apartenenta unei secvente binare la L.
idee:
avem voie sa ne deplasam la stanga si la dreapta in secventa
de intrare si putem marca un simbol, odata ce l-am
examinat.
Cursorul va scana in mod repetat secventa de intrare:
la fiecare trecere va compara un simbol din stanga cu unul
situat in dreapta lui # si, daca coincid, le inlocuieste cu x;
daca toate simbolurile din secventa au fost inlocuite cu x,
atunci MT trece in una dintre starile finale de acceptare;
altfel trece in una dintre starile finale de respingere.
4

Masini Turing
=> algoritmul:
(P1) se scaneaza secventa de intrare w{0,1}* in cautarea
simbolului special # ;
daca simbolul este gasit, atunci se trece la pasul 2; altfel,
secventa este respinsa.
(P2) se scaneaza prima pereche de simboluri cele mai din
stanga din cele 2 subsecvente;
daca coincid, atunci se inlocuiesc cu x si se trece la pasul
3; altfel, secventa este respinsa.
(P3) se scaneaza urmatoarea pereche de simboluri, pana se
epuizeaza simbolurile din stanga lui #;
daca la dreapta lui # mai raman simboluri binare, atunci
secventa de intrare w este respinsa; altfel, w este acceptata.
5

Masini Turing

1. Exemple
2. Definitia formala
3. Limbaje Turing-recunoscute si limbaje Turingdecidabile

Masini Turing
Definitia 1
MT = un sistem (Q, , , , q0, qa, qr) unde:
Q = mulime finit: mulimea strilor;
= mulime finit: alfabetul de intrare; Q=;
= mulime finit: alfabetul benzii; , , ;
: Q x Q x x { L , R }: funcia de tranziie;
q0 Q: starea iniial;
qa Q: starea finala de acceptare a secventei de intrare;
qr Q: starea finala de respingere a secventei de intrare.
Notatie
MT = {M | M este o masina Turing}
7

Masini Turing
Observatie: Modul de calcul al MT:
1) Initial, MT se afla in starea q0
si primeste pe banda, in primele n locatii din extr. stg., secventa de intrare
w=w1w2wn*.
Primul blank care apare pe banda marcheaza sfarsitul secv. de intrare.
2) Cursorul se afla in extremitatea stanga a benzii (in prima locatie).
(q,a)= (p,b,R)
MT, aflata in starea q, citeste pe banda de intrare simbolul a =>

MT trece in starea p,

inlocuieste simbolul a cu simbolul b in celula examinata si

deplaseaza cursorul cu o celula la dreapta celulei examinate.


3) Daca MT incearca sa deplaseze cursorul dincolo de extremitatea stanga a
benzii, acesta ramane in dreptul primei locatii din extremitatea stanga.
4) Calculul continua pana MT ajunge in qa sau qr si se opreste. Altfel,
cicleaza nedefinit.
8

Masini Turing

Definitia 2
Configuratie a unei MMT = un triplet format din:
starea curenta a M, q;
continutul curent al benzii, v w;
pozitia curenta a cursorului.
Notatie
q7
vqw, v,w*, qQ.
Exemplu
1 0 1 1 0 1
Configuratia 1011q701111 inseamna

1 1 1
9

Masini Turing

Definitia 3
Configuratia C1 produce configuratia C2
MT trece corect din C1 in C2 intr-un singur pas
Fie a,b,c ,
v,w *,
qi, qj Q
Spunem ca o configuratie vaqibw produce configuratia vqjacw daca
(qi,b)=(qj,c,L);
Analog: o configuratie vaqibw produce configuratia vacqjw daca
(qi,b)=(qj,c,R).
10

Masini Turing

Cazuri particulare de configuratii:


1) Configuratia initiala: q0w ;
2) Configuratii de oprire:
configuratia de acceptare : q=qa,
configuratia de respingere : q=qr;
3) Cursorul este in extr. stanga a benzii => config. curenta qibw produce:
qjcw daca cursorul ramane pe loc,
cqjw daca cursorul se deplaseaza la dreapta;
4) Cursorul este in extr. dreapta a benzii =>
config. curenta vaqi este echivalenta cu vaqi .

11

Masini Turing

1. Exemple
2. Definitia formala
3. Limbaje Turing-recunoscute si limbaje Turingdecidabile

12

Masini Turing

Definitia 4
MMT M accepta secventa de intrare w *
o secventa de configuratii C1, C2, , Cs astfel incat:
1) C1 este configuratia initiala a lui M pentru intrarea w,
2) 1is-1: Ci Ci+1 ,
3) Cs este o configuratie de acceptare.

Definitia 5
Fie MMT: L(M) = limbajul masinii Turing M = { w* | M accepta w }.

13

Masini Turing

Definitia 6
Limbajul L* se numeste Turing-recunoscut = recursiv enumerabil
MMT: L=L(M).

Definitia 7
1) MMT se numeste decidenta M se opreste indiferent ce secventa
primeste la intrare.
2) Fie MMT si L*; Spunem ca M decide asupra limbajului L
(i) L=L(M),
(ii) M este decidenta.

14

Masini Turing

Definitia 8
Limbajul L* se numeste [Turing-]decidabil = recursiv
MMT decidenta: L=L(M).

Observatie
L Turing-decidabil => L este Turing-recunoscut dar
(rec.)

(r.e.)
<

15

Masini Turing

1. Exemple
2. Definitia formala
3. Limbaje Turing-recunoscute si limbaje Turingdecidabile

16

Variante de masini Turing


1.

Terminologia de descriere a MT

2.

MT cu 3 deplasari

3.

MT cu mai multe benzi

4.

MT nedeterminsite

5.

Enumeratoare

6.

Echivalenta modelelor de calculabilitate

7.

Problema a 10-a a lui Hilbert


1

Variante de masini Turing

O MT poate fi descrisa in 3 moduri:


formal:
sunt date complet Q, , , ;
la nivelul implementarii MT:
se utilizeaza limba naturala pt a defini:
modul in care se deplaseaza cursorul,
modul de memorare a informatiei de pe banda de lucru;

la nivelul cel mai inalt:


se utilizeaza limba naturala pt a descrie un
algoritm, ignorand complet modul de implementare a
acestuia.
2

Variante de masini Turing


Definim formatul si notatia utilizate pt a descrie o MT:
datele de intrare constau intotdeauna dintr-o secventa de
simboluri;
daca intrarea trebuie sa fie un obiect (un graf, un polinom, un
automat etc. sau o combinatie a acestora), atunci va trebui
mai intai sa-l reprezentam printr-o secventa.
Intrucat codificarile alternative pot fi decodifcate unele in
altele de catre MT (eficient) => putem alege orice
codificare pt obiectul de intrare.
Vom nota
1! obiect O, codificat printr-o secventa, prin <O>;
mai multe obiecte O1,O2,..,On, codificate printr-o unica
secventa, prin < O1,O2,..,On >.
3

Variante de masini Turing

prima linie a textului va descrie datele de intrare ale MT;


daca intrarea este:
chiar o secventa de simboluri w => ea este interpretata ca
un cuvant peste un alfabet si notata w;
codificarea unui obiect <A> => MT incepe automat cu
VERIFICAREA CORECTITUDINII CODIFICARII.
algoritmul este impartit in etape pasi de calcul
numerotati;
bloc indentare.

Variante de masini Turing


Problema:

Sa se gaseasca un algoritm care sa verifice daca un graf neorientat


oarecare este conex sau nu.
Formalizare:
Fie A = un limbaj care consta din toate secventele care reprezinta grafuri
neorientate conexe =>
A = {<G> | G este un graf neorientat, conex};
trebuie sa gasim o MT decidenta care sa decida asupra limbajului A.
M = Fie intrarea <G> (adica: o codificare a grafului G):
1. Se selecteaza primul nod din G si se marcheaza.
2. Se reia pasul urmator pana cand nu se mai pot marca noi noduri:
3. Fie un nod oarecare v din G; daca el este legat printr-o muchie de
un nod deja marcat, atunci nodul v trebuie marcat si el.
4. Se scaneaza toate nodurile din G pt a verifica daca sunt toate
marcate sau nu. Daca sunt marcate toate nodurile, atunci M accepta;
altfel, M respinge.
5

Variante de masini Turing

Exemplu

<G>=((1,2,3,4);(1,2),(1,3),(1,4),(2,3)).
Explicam modul de codificare a lui G:
MT incepe prin a verifica corectitudinea codificarii <G>.
Daca testul se incheie cu succes (codificarea e corecta),
atunci MT trece la prima etapa a algoritmului.

Variante de masini Turing


1.

Terminologia de descriere a MT

2.

MT cu 3 deplasari

3.

MT cu mai multe benzi

4.

MT nedeterminsite

5.

Enumeratoare

6.

Echivalenta modelelor de calculabilitate

7.

Problema a 10-a a lui Hilbert


7

Variante de masini Turing


Exemplu
Fie MT = (Q, , , , q0, qa, qr) unde:
: Q x Q x x { L, R };
Fie MT = (Q, , , , q0, qa, qr) unde:
: Q x Q x x { L, R, S };
(qi, a) = (qj,b,S)
(qi, a) = (qk,b,R), (qk, b) = (qj,b,L).
=> Cele 2 modele sunt computational echivalente dar:

e nevoie de cate o o stare auxiliara suplimentara;

sunt necesare 2 tranzitii in loc de una.


8

Variante de masini Turing


1.

Terminologia de descriere a MT

2.

MT cu 3 deplasari

3.

MT cu mai multe benzi

4.

MT nedeterminsite

5.

Enumeratoare

6.

Echivalenta modelelor de calculabilitate

7.

Problema a 10-a a lui Hilbert


9

Variante de masini Turing

Definitia 1
O MT cu mai multe benzi este o MT standard
M = (Q, , , , q0, qa, qr) care:
(i) are n1 benzi de lucru si n1 cursoare corespunzatoare;
(ii) initial prima banda contine secventa de intrare iar
celelalte n-1 benzi sunt vide;
(iii) : Q x n Q x n x { L, R, S }n,
(qi,a1,a2,,an) = (qj,b1,b2,,bn,L,R,S,L,,S).

10

Variante de masini Turing


Teorema 1
M = MT cu mai multe benzi =>
S = MT standard a.i. L(S) = L(M).
Corolar 1
L* este Turing-recunoscut
o MT cu mai multe benzi, M, a.i. L=L(M).

11

Variante de masini Turing


1.

Terminologia de descriere a MT

2.

MT cu 3 deplasari

3.

MT cu mai multe benzi

4.

MT nedeterminsite

5.

Enumeratoare

6.

Echivalenta modelelor de calculabilitate

7.

Problema a 10-a a lui Hilbert


12

Variante de masini Turing


MTN AFN, APDN;
Modelul de calcul: arbore;
MTN accepta secventa de intrare
cel putin una dintre ramurile arborelui are ca eticheta a
frunzei o configuratie de acceptare.
Definitia 2
O MT nedeterminista este o MT standard
M = (Q, , , , q0, qa, qr) unde:
: Q x P(Q x x {L, R}).
13

Variante de masini Turing

Teorema 2
N = MT nedeterminista =>
S = MT standard a.i. L(S) = L(N).
Corolar 2
L* este Turing-recunoscut
o MT nedeterminista, N, a.i. L=L(N).

14

Variante de masini Turing


Definitie 3
O MT nedeterminista se numeste decidenta
w*, toate ramurile ei de calcul se opresc.
Corolar 3
L* este decidabil
o MT nedeterminista decidenta, N, a.i. L=L(N).

15

Variante de masini Turing


1.

Terminologia de descriere a MT

2.

MT cu 3 deplasari

3.

MT cu mai multe benzi

4.

MT nedeterminsite

5.

Enumeratoare

6.

Echivalenta modelelor de calculabilitate

7.

Problema a 10-a a lui Hilbert


16

Variante de masini Turing


Limbajele Turing recunoscute = limbaje recursiv enumerabile
Enumerator
Imprimanta

ab

baab
abba

IMPRIMANTA
0

banda de intrare

Modul de lucru:
initial: banda de intrare este vida;
limbajul enumerat de E: multimea tuturor secventelor de simboluri
printate de imprimanta;
situatia de ciclare: tiparirea unei liste infinite de cuvinte.

17

Variante de masini Turing

Teorema 3
Fie L*; L este Turing-recunoscut
EMT a.i. L=L(E).

18

Variante de masini Turing


Observatii
1.Pentru a construi E a fost nevoie se o listare a cuvintelor din
: orice listare (fara repetitii) este acceptabila.
2.Evident, daca M accepta un cuvant oarecare s*, acesta
apare la un moment dat in lista tiparita de E. De fapt, el va fi
tiparit de o infinitate de ori deoarece M reia calculul de la
pasul 1 pt fiecare i, oridecateori lista s1,s2,,si se lungeste
cu inca un cuvant.
3.Procedura de mai sus simuleaza rularea lui M in paralel pe
toate cuvintele de intrare posibile.

19

Variante de masini Turing


1.

Terminologia de descriere a MT

2.

MT cu 3 deplasari

3.

MT cu mai multe benzi

4.

MT nedeterminsite

5.

Enumeratoare

6.

Echivalenta modelelor de calculabilitate

7.

Problema a 10-a a lui Hilbert


20

Variante de masini Turing


Am definit mai multe variante de MT i am demonstrat echivalena
lor .
Exist i alte modele de calculabilitate:
funciile -calculabile: Alonzo CHURCH, Stephen Cole
KLEENE,1934;
funciile general recursive: Kurt Godel, 1935
sistemele (masinile) Post: Emil POST, 1936
algoritmii normali Markov: A.A.MARKOV, 1954.
Toate au aceeai caracteristic: acces nerestricionat la o memorie
nelimitat.
n plus, toate sunt echivalente cu MT (i deci unele cu altele)
=> clasa algoritmilor pe care o descriu este unic i natural.
vezi si clasa limbajelor de programare.
21

Variante de masini Turing


1.

Terminologia de descriere a MT

2.

MT cu 3 deplasari

3.

MT cu mai multe benzi

4.

MT nedeterminsite

5.

Enumeratoare

6.

Echivalenta modelelor de calculabilitate

7.

Problema a 10-a a lui Hilbert


22

Variante de masini Turing

Algoritm: o notiune primara


Problema a 10-a a lui Hilbert

23

Variante de masini Turing


Congresul Internaional al matematicienilor, 1900, Paris;
Conferinta lui David HILBERT: lista celor 23 probleme

s se gseasc un algoritm care s verifice dac un


polinom n oricte variabile admite o rdcin n Z.
Observatii
un proces cu ajutorul cruia, dup un numr finit de operaii,
s se determine .
Hilbert presupunea c algoritmul exist si trebuie doar descoperit.
Lipsa unei definitii formale pentru notiunea de algoritm solutii
pentru cazuri particulare ale problemelor dar nu pentru o clasa
intreaga.
24

Variante de masini Turing


Teza Church-Turing

Clasa algoritmilor (functiilor intuitiv calculabile) coincide cu


clasa functiilor -calculabile (functiilor calculabile cu MT).
Problema a 10a a lui Hilbert.
1970, Yuri MATIJASEVI, (Martin DAVIS, Hilary PUTNAM, Julia
ROBINSON):
nu exist nici un algoritm care s verifice dac un polinom oarecare
are radacini intregi
Problema a 10a a lui Hilbert este nerezolvabil algoritmic.
25

Variante de masini Turing


Fie D = {p | p este un polinom care admite cel putin o radacina in Z}
D este decidabila ?
D este Turingrecunoscuta dar nu este decidabila.
Cazul unar:
Fie D1={p1|p1 este un polinom intr-o singura variabila x, care admite
cel putin o radacina intreaga}.
Construim o MT, M1, care recunoaste D1:
M1 = Fie p1 un polinom oarecare in variabila x:
1. Se evalueaza p1 succesiv pentru x=0, x=1, x=-1, x=2, x=-2, x=3,
,
2. Daca la un moment oarecare se obtine 0, atunci M1 accepta p1.
26

Variante de masini Turing


Cazul general:
putem construi o MT, M, similara care va testa fiecare
polinom de intrare p pentru diferite
combinatii de valori, in functie de numarul
de variabile.
n=2:
(x1,x2){(0,0), (0,1), (1,0), (1,1), (0,2), (2,0), (1,2),
(2,1), (2,2), (0,3), (3,0),};
n=3: (x1,x2,x3){(0,0,0), (0,0,1), (0,1,0), (0,1,1), (1,0,0),
(1,0,1),.
Observam ca: M1 si M recunosc limbajele D1, respectiv D,
dar nu decid asupra lor.
27

Variante de masini Turing


Teorema 4
Daca un polinom p de o singura variabila admite radacini
intregi,

| cmax |
| cmax |
,k
k

|
c
|
|
c
|

acestea se afla in intervalul

1
1
unde: k=nr de termeni (monoame) din p;
cmax = coeficientul cel mai mare in valoare absoluta
c1= coeficientul termenului de grad maxim.

28

Variante de masini Turing


=> M11 = Fie p1 un polinom oarecare in variabila x:
1. Se calculeaza t2= k*|cmax/c1|, t1=-t2 si z=[t2].
2. Se evalueaza p1 pentru z.
3. Daca p1(z)=0, atunci M11 accepta; altfel, z:=z-1.
4. Daca z<t1 atunci M11 respinge; altfel, reia de la P2.
Teorema lui MATIJASEVI

29

Variante de masini Turing


1.

Terminologia de descriere a MT

2.

MT cu 3 deplasari

3.

MT cu mai multe benzi

4.

MT nedeterminsite

5.

Enumeratoare

6.

Echivalenta modelelor de calculabilitate

7.

Problema a 10-a a lui Hilbert


30

Decidabilitate

1. Probleme decidabile in clasa limbajelor


regulate
2. Probleme decidabile in clasa limbajelor
independente de context
3. Problema opririi

Decidabilitate
L3 :
un AFD oarecare accepta sau nu o secventa oarecare?
limbajul acceptat de un AFD este vid?
doua AFD oarecare sunt echivalente?
PROBLEMA ACCEPTABILITATII pentru AFD este:
se poate decide algoritmic dac un AFD oarecare accept
o secven oarecare sau nu =>
ACCAFD = {<A,w>|A este un AFD care accept secvena w}.
AFD A accept w ? <A,w> ACCAFD?
a demonstra c o problem de calculabilitate este
rezolvabil algoritmic a demonstra c un limbaj
(asociat) este decidabil.
2

Decidabilitate
Teorema 1
Limbajul ACCAFD={ <A,w>|A este un AFD care accept
secvena w} este decidabil.
Teorema 2
Limbajul ACCAFN = { <A,w> | A este un AFN care accept
secvena w } este decidabil.
Teorema 3
Limbajul ACCREX = { <R,w> | R este o expresie regulata care
genereaza secvena w } este decidabil.
Observatie
T1, T2, T3
AFD AFN REX din punct de vedere al decidabilitatii
limbajului recunoscut/generat

Decidabilitate
Teorema 4
Limbajul VIDAFD = { <A> | A este un AFD i L(A) = } este
decidabil.
Teorema 5
Limbajul EQVAFD = {<A,B>|A i B sunt AFD i L(A)=L(B)}
este decidabil.

Decidabilitate

1. Probleme decidabile in clasa limbajelor


regulate
2. Probleme decidabile in clasa limbajelor
independente de context
3. Problema opririi

Decidabilitate
Teorema 6

Limbajul ACCGIC = { <G,w> | G este o gramatic


independent de context care genereaz w } este
decidabil.
Lema 1

Fie GGIC n forma normal Chomsky i wL(G): |w|=n,


nN;
=> orice derivare a lui w n G are 2n-1 pai.
Observatie
Teorem anterioar: GIC, APD: L(GIC)=L(APD).
toate rezultatele demonstrate pentru gramaticile independente de
context au loc i pentru automatele pushdown.
6

Decidabilitate
Teorema 7
Limbajul VIDGIC = { <G> | GGIC i L(G) = } este decidabil.
Observatie
Limbajul EQVGIC = {<G,H>|G,HG.I.C. i L(G)=L(H)}:
Cf. Teoremei 5, problema egalitatii limbajelor generate de
gramatici REGULATE este decidabila
EQVGIC = { <G,H> | G i H sunt gramatici independente de
context i L(G) = L(H) } NU este decidabil.
Teorema 8
Orice limbaj independent de context este decidabil.
7

Decidabilitate

1. Probleme decidabile in clasa limbajelor


regulate
2. Probleme decidabile in clasa limbajelor
independente de context
3. Problema opririi

Decidabilitate

Probleme decidabile in clasa limbajelor


regulate
Probleme decidabile in clasa limbajelor
independente de context
Problema opririi

Problema opririi
1. Metoda diagonalizarii
2. Nedecidabilitatea unui limbaj dat
3. Un limbaj care nu este Turing-recunoscut

Problema opririi
Definitia 1
Multimea A se n. numarabila
A este finita sau
f: N A, bijectiva.
Exemple de multimi numarabile
1.
N = {2n | n N}
2.
T = {(i,j,k) | i,j,k N}
2

Problema opririi
3. Enumerarea lui Cantor
Multimile N2 si N au aceeasi cardinalitate (1874)

( x + y )( x + y + 1)
J : N 2 N , J ( x, y ) =
+x
2

x\y

10

15

11

16

22

12

17

23

30

13

18

24

31

39

14

19

25

32

40

49

20

26

33

41

50

60

Problema opririi
functia J este bijectiva;
inversele ei sunt:
K, L : N N,
z

K ( z ) = x eq( J ( x, i ), z ) = 1,

x z i =0

L( z ) = y eq( J (i, y ), z ) = 1 ,

y z i =0

1, daca a = b
unde : eq( a, b) =
0, daca a b

a b, daca a b
a b =
0, daca a < b.

Problema opririi
J(x,y) = numarul lui Cantor asociat perechii
(x,y);
Tripletul (J,K,L):
J(K(z),L(z))=z;K(J(x,y))=x,L(J(x,y))=y
triplet de functii pereche
Contraexemplu
R
5

Problema opririi
4. Q = {m/n | m,n N} este numarabila
Utilizam tehnica diagonalizarii
Construim o matrice:
1 1 1 1 1
.....
1 2 3 4 5
2 2 2 2 2
.....
1 2 3 4 5
3 3 3 3 3
.....
1 2 3 4 5
...................

=> numarul rational m/n: celula aflata la intersectia liniei m


cu coloana n.
6

Problema opririi

1 1 2 3 2 1 1 2 3 4 5 4 3 2 1
; ; ; ; ; ; ; ; ; ; ; ; ; ; ;......
1 2 1 1 2 3 4 3 2 1 1 2 3 4 5

1 1 1 1 1
.....
1 2 3 4 5
2 2 2 2 2
.....
1 2 3 4 5
3 3 3 3 3
.....
1 2 3 4 5
...................

eliminam repetitiile =>

1
1
2
3
1 1 2 3 4 5 1
;
;
;
;
; ; ; ; ; ; ;......
1
2
1
1
3 4 3 2 1 1 5
f (1), f (2), f (3), f (4), f (5),
7

Problema opririi
=> Limbaje care nu sunt decidabile si nici macar

Turing recunoscute.
? multimea limbajelor este nenumarabila,

multimea MT este numarabila,


o MT poate recunoaste 1! limbaj.

Problema opririi
Propozitia 1
L*: LL(M), MMT
demonstratie
(i) MT = multimea masinilor Turing este numarabila
Observam ca multimea * este numarabila, .
MMT poate fi codificata peste un alfabet A convenabil
ales.
eliminam wA*: w<M>, MMT

obtinem o enumerare a MT.


9

Problema opririi
(ii) multimea B a secventelor binare infinite este nenumarabila
Folosim metoda diagonalizarii
n
f(n)=bn
ppa f:N B, bijectiva a.i. f(n)=bnB .

b=00111.

100

f(n)=bn

010

10000

110

01000

001

11000

00100

5
10100
bf(n), nN :

a na cifra binara din b este:


0, daca a n-a cifra binara din f(n) este 1;
1, daca a n-a cifra binara din f(n) este 0.
=> B este nenumarabila.

10

Problema opririi
(iii) multimea L = {L* | L =limbaj} este nenumarabila
E suficient sa gasim f: L B, bijectiva.
Fie *={s1,s2,,sn,}; L L infinita, unica, definita astfel:
cel de-al i-lea bit din L este: 1, daca siL,
0, daca siL.
Exemplu: ={0,1}, L={w *| x*:w=0x}
=> *={,0,1,00,01,10,11,000,001,010,011,100,.}
L={ 0, 00,01,
000,001,010,011,
}
=> L= 0 1 0 1 1 0 0 1 1 1 1 0..
=> f: L B: f(L)= L.
Evident: f = bijectiva.
cf. (ii) B =nenumarabila => L nenumarabila.
Din (i) si (ii) => exista limbaje care nu sunt Turing-recunoscute

11

Problema opririi

1. Metoda diagonalizarii
2. Nedecidabilitatea unui limbaj dat
3. Un limbaj care nu este Turingrecunoscut

12

Problema opririi
O MT, M, accepta sau nu o anumita secventa de intrare, w?
PROBLEMA ACCEPTABILITATII pt. LIMBAJE RECURSIV
ENUMERABILE
PROBLEMA OPRIRII
ACCMT={<M,w> | M MT, w *: M accepta w}
Teorema 1
Limbajul ACCMT={<M,w> | M MT, w *: M accepta w}
nu este decidabil.
13

Problema opririi
Observatia 1
Lb ACCMT este Turing-recunoscut dar nu este Turingdecidabil:
U = Fie secventa de intrare <M,w>, unde MMT si w*:
1. Se simuleaza M pe intrarea w.
2. Daca M accepta w, atunci U accepta <M,w>;
daca M respinge w, atunci U respinge <M,w>.
==> U recunoaste limbajul ACCMT dar nu decide asupra lui:
M cicleaza pe w U cicleaza pe <M,w>.
? M nu se opreste pe w U respinge <M,w>
ACCMT= decidabil
Observatia 2
Problema acceptabilitatii pt MT, ACCMT, se n. si PROBLEMA
OPRIRII tocmai datorita acestui fapt.
14

Problema opririi
Observatia 3
U = exemplu de MT universala
O MT oarecare se numeste universala
ea poate simula orice MT, cu conditia sa primeasca la intrare
o descriere corecta a acesteia.
Observatia 4
Teorema 1: MT acceptoare sunt mai puternice decat MT
decidente.

15

Problema opririi
demonstratie (T1)
Ppa ca limbajul ACCMT este decidabil
H = Fie secvena de intrare <M,w>, unde M MT i w*:
1. Se simuleaza M pe intrarea w.
2. Daca M accepta w, atunci H se opreste si accepta <M,w>;
daca M nu accepta w, atunci H se opreste si respinge <M,w>.

16

Problema opririi
D apeleaz H pentru a determina ce aciune execut M atunci cnd
primete, ca secven de intrare w , propria sa descriere <M>;
dup ce D a obinut aceast informaie ea execut exact aciunea
contrar, i.e.:
D = Fie secvena de intrare <M> , unde MMT:
1. Se ruleaz H pe secvena de intrare <M,<M>>.
2. Se returneaz rezultatul opus rezultatului returnat de H, adic,
dac H accept intrarea <M,<M>> (ceea ce se ntmpl atunci
cnd M accept <M>) atunci D respinge;
dac H respinge intrarea <M,<M>> (ceea ce se ntmpl atunci
cnd M nu accept <M>) atunci D accept <M>.

17

Problema opririi
Dar MT M din secventa de intrare este oarecare: ce se
intampla cand D primeste la intrare propria sa
descriere <D>?
respinge, dac D accept <D>.
D(<D>) =
accept, dac D nu accept <D>,
contradicie
nici D nici H nu pot exista n realitate
limbajul ACCMT nu este decidabil.
18

Problema opririi
Fie multimea tuturor masinilor Turing, MT:
<M1>

<M2>

<M3>

<M4>

M1

acc

acc

M2

acc

acc

acc

acc

M3

M4

acc

acc

acc, daca Mi accepta intrarea <Mj>,


i.e.: celula (i,j)=
, dac Mi nu accepta intrarea <Mj> (respinge sau cicleaza)
19

Problema opririi

<M1>

<M2>

<M3>

<M4>

M1

acc

resp

acc

resp

M2

acc

acc

acc

acc

M3

resp

resp

resp

resp

M4

acc

acc

resp

resp

i.e.: celula (i,j)= rezultatul returnat de H pe intrarea <Mi,<Mj>>.

20

Problema opririi

<M1>

<M2>

<M3>

<M4>

<D>

M1

acc

resp

acc

resp

acc

M2

acc

acc

acc

acc

acc

M3

resp

resp

resp

resp

resp

M4

acc

acc

resp

resp

acc

resp

resp

acc

acc

???

21

Problema opririi

1. Metoda diagonalizarii
2. Nedecidabilitatea unui limbaj dat
3. Un limbaj care nu este Turingrecunoscut

22

Problema opririi
Definiia 2
Limbajul L * se numete co-Turing-recunoscut
L *, L = Turing-recunoscut astfel incat L = * \ L.
Teorema 2
L *: L este decidabil
L este Turing-recunoscut i co-Turing-recunoscut.
demonstratie
ip: L este decidabil L este Turing-recunoscut.
dar: L este decidabil L este decidabil
L este Turing-recunoscut
L este co-Turing-recunoscut (cf. def.).
23

Problema opririi

ip: L este Turing-recunoscut i co-Turing-recunoscut


L i L sunt Turing-recunoscute (cf. def.)
M1,M2MT: L=L(M1), L =L(M2).
Definim MT, M, astfel :
M = Fie cuvntul de intrare w *:
1. Se ruleaz M1 i M2 n paralel pe intrarea w.
2. Dac M1 accept w atunci M accept w iar dac M2 accept w atunci M
respinge w.
Rularea n paralel a celor doua MT M1 i M2 : nzestrarea lui M cu 2 benzi de lucru.
Simularea se face alternativ: M simuleaz cte un pas al fiecrei maini pn cnd una
dintre ele se oprete.
M decide asupra limbajului L:
fie un cuvnt oarecare w * w L sau w L
fie M1 fie M2 accept intrarea w.
Dar, conform definiiei sale, M se oprete oridecteori M1 sau M2 accept cuvntul de
intrare primit.
n plus, M accept toate secvenele din L i respinge toate secvenele din L
M decide asupra limbajului L L este decidabil.
24

Problema opririi
Corolarul 1
Limbajul ACC MT NU este Turing-recunoscut.
demonstraie
Ppa: limbajul ACC MT
este Turing-recunoscut
Am dem ca limbajul ACCMT este Turing-recunoscut

ACCMT este decidabil (cf. Teorema 2) contradicie cu Teorema 1.

Limbaje
regulate

Limbaje
indep.
context

Limbaje
decidabile
(recursive)

Limbaje
recunoscute
de MT (recursiv
enumerabile)

Limbaje

25

Problema opririi

1. Metoda diagonalizarii
2. Nedecidabilitatea unui limbaj dat
3. Un limbaj care nu este Turingrecunoscut

26

Reductibilitate - Nedecidabilitate
1. Functii calculabile; reductibilitatea
functionala
2. Problema opririi
3. Alte probleme nedecidabile in teoria
limbajelor formale

Reductibilitate - Nedecidabilitate
Definiia 1
Reducerea = o metod de a transforma o problem P1 ntro alt problem P2 astfel nct o soluie dat problemei
P2 poate fi utilizat pentru a rezolva problema P1.
Exemplul 1
P1: rezolvarea unui sistem de n ecuaii lineare cu m
necunoscute, n,m N.
P2: inversarea unei matrice.
P3: calcularea valorii unui determinant.

Reductibilitate - Nedecidabilitate

Reductibilitatea functionala.

Gsirea unei funcii calculabile numite REDUCERE


care s transforme fiecare instan a problemei A ntr-o
instan a problemei B.

Reductibilitate - Nedecidabilitate
Definiie 2
Funcia f : * * se numete calculabil
MMT a.i. w*: M se oprete, avnd pe band secvena
f(w) *.
Exemplul 2
Toate funciile aritmetice definite pe N sunt calculabile.

Reductibilitate - Nedecidabilitate
Fie f: NxN N, f(n,m)=n+m
=>construim urmatoarea MT
S=({q0,q1,q2,q3,qa,qr}, {1}, {1,#,}, q0, , {qa,qr}) unde :
1R

q0

#R

1R

#,1 R

q1

1, L

#R

qr

q2

qa

1, L

q3

Reductibilitate - Nedecidabilitate
S = Fie secventa de intrare <n,m>, n,mN:
1. Se testeaza corectitudinea codificarii ca o secventa de n+1
simboluri 1 si m+1 simboluri 1 separate printr-un singur #.
Daca exista pe banda si alte simboluri inafara de 1, # si sau
daca exista mai mult decat un # atunci S respinge.
2. Se scaneaza secventa pana la intalnirea simbolului #.
3. Se inlocuieste simbolul # cu 1.
4. Se scaneaza banda pana la intalnirea primului simbol .
5. Se inlocuiesc ultimele 2 simboluri 1 din extremitatea stanga cu
.
6. S furnizeaza rezultatul corect: n+m simboluri de 1 si se
opreste.
6

Reductibilitate - Nedecidabilitate
Definiia 3
Fie limbajele A, B *.
Limbajul A se numete reductibil funcional la limbajul B
f : * * calculabil astfel nct () w*:
wA f(w)B.
Funcia f se numete reducerea lui A la B.
Notatie
A m B
Observatia 1
i) A m B A m B
ii) A m B: wA ~~> f(w)B
=> ? wA ~~>f w ~ f(w) ~~>f(w)B

Reductibilitate - Nedecidabilitate
Observaia 2
Reductibilitatea joac un rol important n
(i) teoria calculabilitii:
dac P1 este reductibil la P2 i P2 este algoritmic
rezolvabila, atunci P1 este algoritmic rezolvabila;

dac P1 este reductibil la P2 i P1 este nerezolvabila


algoritmic, atunci si P2 este nerezolvabila algoritmic;
(ii) teoria complexitii:
dac P1 este reductibil la P2 atunci rezolvarea lui P1 nu
poate fi mai dificil dect rezolvarea lui P2 pentru c o soluie
obinut pentru P2 furnizeaz o soluie pentru P1

P1 are aceeai complexitate ca i P2.


8

Reductibilitate - Nedecidabilitate
Teorema 1
Fie limbajele A, B*.
Daca A m B si B = decidabil => A = decidabil.
demonstraie
Cf.ip.: B = limbaj decidabil MMT decident pentru B.
Cf.ip.: A m B f : * * o reducere a lui A la B
putem construi o MT N decident pentru A astfel:
N = Fie cuvnt de intrare w *:
1. Se calculeaz f(w).
2. Se ruleaz M pe intrarea f(w); rezultatul furnizat de M este
preluat de N.
Evident, wA f(w)B M accept f(w) exact atunci cnd wA
M decide B N este corect definita si decide A.
9

Reductibilitate - Nedecidabilitate

Corolar 1
Fie limbajele A,B*.
Daca A m B si
A = nedecidabil
=> B = nedecidabil.

10

Reductibilitate - Nedecidabilitate
Corolar 2
Fie 2 limbaje A,B*:
A m B si B = Turing recunsocut
=> A = Turing recunoscut.
demonstratie
Acelasi rationament ca pt. Teorema 1, doar ca cele 2 MT, M
si N, nu decid ci doar recunosc limbajele B si A.
Corolar 3
Fie 2 limbaje A,B*: A m B si
A Turing recunsocut
=> B Turing recunoscut.
11

Reductibilitate - Nedecidabilitate
1. Functii calculabile; reductibilitatea
functionala
2. Problema opririi
3. Alte probleme nedecidabile in teoria
limbajelor formale

12

Reductibilitate - Nedecidabilitate
ACCMT={<M,w> | M MT, w *: M accepta w} = nedecidabil
HALTMT={<M,w> | M MT, w *: M se opreste pe w} =
nedecidabil
Vom aplica metoda reducerii:
stim ca problema acceptabilitatii pt MT este algoritmic nerezolvabila
(i.e. limbajul ACCMT este nedecidabil);
reducem problema acceptabilitatii la problema opririi

demonstram astfel ca problema opririi este si ea algoritmic


nerezolvabila (i.e. limbajul HALTMT este nedecidabil)

13

Reductibilitate - Nedecidabilitate

Teorema 2
Limbajul
HALTMT = {<M,w> | MMT, w* i M se oprete pe w}
este nedecidabil.
ideea demonstraiei
ppa: limbajul HALTMT este decidabil i demonstrm c limbajul
ACCMT este decidabil, ceea ce contrazice teorema anterioara.

14

Reductibilitate - Nedecidabilitate
HALTMT decidabil => HMT care decide asupra limbajului HALTMT
construim AMT care s decid asupra limbajului ACCMT astfel:
A utilizeaz H pentru a observa comportamentul MMT pe
intrarea w* (unde M i w sunt arbitrare), i anume:
H indic faptul c M se oprete i accept w
A accept <M,w>;
H indic faptul c M se oprete i respinge w
A respinge <M,w>;
H indic faptul c M cicleaz pe intrarea w
convenim ca A s resping intrarea <M,w>
A este decident nu doar acceptoare.

15

Reductibilitate - Nedecidabilitate

demonstratie
(i) Formal, AMT este definit astfel:
A = Fie secvena de intrare <M,w>, unde MMT i w*, oarecare:
1. Se ruleaz MT H pe intrarea <M,w>.
2. Dac H respinge <M,w> atunci i A respinge <M,w>.
3. Dac H accept <M,w> atunci se simuleaz M pe intrarea w
pn cnd M se oprete
4. Dac M accepta / respinge w* atunci A accept / respinge
<M,w>.

16

Reductibilitate - Nedecidabilitate
(ii) Demonstram acum ca ACCMT m HALTMT
gasim o funcie f : * *, calculabil, a.i.
<M,w>: <M,w>ACCMT f(<M,w>) = <M,w>HALTMT.
Fie urmtoarea MT , F, care calculeaz o astfel de reducere f:
F = Fie secvena de intrare <M,w>, unde MMT i w*:
1. Se construiete urmtoarea MT M astfel:
M = Fie cuvntul de intrare x *:
2. Se ruleaz M pe intrarea x.
3. Dac M accept x, atunci i M accept x.
4. Dac M respinge x, atunci M cicleaz.
5. Se returneaz secvena <M,w>.
17

Reductibilitate - Nedecidabilitate
Cf. presupunerii prin absurd: H este decident i decide asupra
limbajului HALTMT ;
Conform (i), (ii) si Teoremei 1: AMT este i ea decident i
decide asupra limbajului ACCMT.
Dar, conform teoremei ant., limbajul ACCMT nu este decidabil
contradicie
limbajul HALTMT este nedecidabil.

18

Reductibilitate - Nedecidabilitate
1. Functii calculabile; reductibilitatea
functionala
2. Problema opririi
3. Alte probleme nedecidabile in teoria
limbajelor formale

19

Reductibilitate - Nedecidabilitate
Teorema 3
Limbajul
EMPMT = {<M> | MMT i L(M) = }
este nedecidabil.

20

Reductibilitate - Nedecidabilitate
demonstratie
M=Fie secventa de intrare x*, oarecare:
1. Daca xw, atunci M respinge.
2. Daca x=w, atunci se ruleaza M pe intrarea w.
3. Daca M accepta w, atunci M accepta x
Ppa ca avem EMT care decide asupra limbajului EMPMT. Construim A pt ACCMT:
A =Fie secv. de intrare <M,w>, MMT, w*, oarecare:
1. Se construieste, cu ajutorul descrierii <M,w>, o MT M cf. definitiei de mai sus.
2. Se ruleaza E pe intrarea <M>.
3. Daca E accepta <M>, atunci A respinge <M,w> iar daca E respinge <M>
atunci A accepta <M,w>.
Cf. ip. noastre: E=decidenta si cf. def. A de mai sus: => A decidenta
=> lb. ACCMT decidabil => (cf. teorema ant.) contradictie
=> lb. EMPMT= nedecidabil.
21

Reductibilitate - Nedecidabilitate

Teorema 4
Limbajul
EQMT = {<M1,M2> | M1, M2MT i L(M1)
= L(M2)}
este nedecidabil.
22

Reductibilitate - Nedecidabilitate

demonstratie
ppa: FMT, decidenta, pt limbajul EQMT;
construim EMT, care sa decida asupra limbajului EMPMT:
E = Fie secventa de intrare <M>, MMT:
1. Se ruleaza F pe intrarea <M,M1>, unde M1 este o MT care
respinge toate intrarile primite.
2. Daca F accepta <M,M1>, atunci E accepta <M>; daca F
respinge, atunci E respinge.

23

Reductibilitate - Nedecidabilitate
Demonstram c EMPMT m EQMT
gasim o funcie g : * *, calculabil, a.i.
w*, w=<M>EMPMT g(<M>) = <M,M1>EQMT, unde M,
M1MT sunt ca mai sus.
Fie urmtoarea MT , G, care calculeaz o astfel de reducere g:
G = Fie secvena de intrare <M>, unde MMT:
1. Se construiete MMT astfel:
M = Fie cuvntul de intrare w*:
2. Se ruleaz M pe intrarea w.
3. Dac M respinge w, atunci i M respinge w.
4. Dac M accepta w, atunci M cicleaz.
5. Se returneaz secvena <M,M1>, unde M1MT si L(M1)=.
24

Reductibilitate - Nedecidabilitate

Cf. def. lb. EQMT si constructiei propuse:


daca F accepta <M,M1> L(M)=L(M1) L(M)= E accepta
<M>;
daca F respinge <M,M1> L(M)L(M1) L(M) E respinge
<M>.
Cf. pp. noastre: F=decidenta => E=decidenta (cf. constructiei de mai
sus).
=> EMPMT=decidabil => contradictie => EQMT=nedecidabil.

25

Reductibilitate - Nedecidabilitate
Observatia 3
? B *: B Turing-recunoscut.
daca aratam ca ACCMT m B
(*)
ACCMT m B
Teorema ant.: ACCMT Turing-recunoscut
(**)
(*) + (**) + Corolar 2 => B Turing-recunoscut
=> pt a demonstra ca un limbaj B NU este Turing-recunoscut
este suficient sa demonstram ca ACCMT m B.

26

Reductibilitate - Nedecidabilitate
Corolarul 4
Limbajul
EQMT = {<M1,M2> | M1, M2MT i L(M1) = L(M2)}
nu este nici Turing-recunoscut nici co-Turing-recunoscut.
demonstratie
(i) EQMT nu este Turing-recunoscut
e suficient sa demonstram ca ACCMT m EQMT.
Urmatoarea MT, F, calculeaza aceasta reducere f:
F = Fie secventa de intrare <M,w>, unde MMT si w*:
1. Se construiesc urmatoarele 2 MT: M1 si M2:
M1 = Oricare ar fi secventa de intrare x*:
2. M1 respinge x.
M2 = Oricare ar fi secventa de intrare x*:
3. Se ruleaza M pe intrarea w.
4. Daca M accepta w atunci M2 accepta x.
5. F produce la iesire secventa <M1,M2>.

27

Reductibilitate - Nedecidabilitate
f este corect definita:
(1) M1 nu accepta nimic;
(2) daca M accepta w
M2 accepta orice
M nu accepta w M2 nu accepta nimic;
din (1) +(2) =>
daca <M,w>ACCMT M2M1,
<M,w>ACCMT M2=M1
=> f reduce ACCMT la EQMT.

28

Reductibilitate - Nedecidabilitate
(ii) EQMT nu este Turing-recunoscut
analog, dem. ca ACCMT m ( EQMT), adica ACCMT mEQMT
Urmatoarea MT, G, calculeaza aceasta reducere g:
G = Fie secventa de intrare <M,w>, unde MMT si w*:
1. Se construiesc urmatoarele 2 MT: M1 si M2:
M1 = Oricare ar fi secventa de intrare x*:
2. M1 accepta x.
M2 = Oricare ar fi secventa de intrare x*:
3. Se ruleaza M pe intrarea w.
4. Daca M accepta w atunci M2 accepta x.
5. G produce la iesire secventa <M1,M2>.
29

Reductibilitate - Nedecidabilitate
g este corect definita:
(1) M1 accepta orice intrare;
(2) daca M accepta w
M2 accepta orice
M nu accepta w M2 nu accepta nimic;
din (1) +(2) =>
daca <M,w>ACCMT M2=M1,
<M,w>ACCMT M2 M1
=> g reduce ACCMT la EQMT.
Din (i) si (ii) EQMT nu este nici Turing-recunoscut, nici coTuring-recunoscut.
30

Reductibilitate - Nedecidabilitate
1. Functii calculabile; reductibilitatea
functionala
2. Problema opririi
3. Alte probleme nedecidabile in teoria
limbajelor formale

31

Masina Turing vs. alte modele de calcul


1. Masina Turing vs. alte modele de calcul
2. Automatul linear marginit
3. Problema lui POST

Masina Turing vs. alte modele de calcul


Observaia 1
O MT poate 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, poate o MT s recunoasc un limbaj regulat ?
Teorema 1
Limbajul
REGMT = { <M> | M este o MT oarecare i L(M) este un limbaj
regulat }
este nedecidabil.

Masina Turing vs. alte modele de calcul


demonstraie
Ppa. RMT care decide asupra REGMT
Construim, cu ajutorul R, o MT A care s decid asupra limbajului ACCMT :
A = Fie secvena de intrare <M,w>, unde MMT i w*:
1. Se construiete urmtoarea M2MT :
M2 = Fie secventa de intrare x*:
1. Dac x este de forma 0n1n atunci M2 accept x.
2. Altfel, se ruleaz M pe intrarea w i, dac M accept w
atunci M2 accept x.
2. Se ruleaz R pe intrarea <M2>.
3. Dac R accept /respinge <M2> atunci A accept / respinge
<M,w>.
3

Masina Turing vs. alte modele de calcul


Fie P o proprietate oarecare netriviala a lb. r.e.
=> problema verificarii faptului ca limbajul recunoscut de o MT data poseda
proprietatea P NU este rezolvabila algoritmic.
Teorema lui Rice
Fie limbajul P = {<M> | M este o MT oarecare}.
Presupunem ca limbajul P satisface urmtoarele dou proprietai:
(i) P nu este trivial
(adic: propr. avuta in vedere are loc pentru unele limbaje r.e. iar pentru
altele nu are loc,
sau inca: () M1,M2MT astfel nct <M1> P i <M2> P)
(ii) P este o proprietate a limbajelor recunoscute de MT
(adica: apartenea unei MT M la P (prin descrierea ei <M>) depinde
numai de limbajul recunoscut de M,
sau inca: M1, M2MT cu proprietatea L(M1) = L(M2) atunci <M1> P
<M2> P).
Atunci, limbajul P este nedecidabil.
4

Masina Turing vs. alte modele de calcul


demonstratie
Analog: ppa limbajul P avand cele 2 proprietati este decidabil
=> RPMT care decide asupra limbajului P.
Construim cu ajutorul lui RP o alta MT, A, care sa decida asupra
ACCMT.
Pt aceasta: fie RMT care respinge orice cuvant,
Putem pp ca < R>P.
Cf. ip (i): cel putin o MT, R, a.i. <R>P.
=> putem construi A folosind capacitatea MT RP de a distinge intre
MT R si R
5

Masina Turing vs. alte modele de calcul


A = Fie secvena de intrare <M,w>, unde MMT i w*:
1. Se construiete MT Mw, cu ajutorul descrierii lui M si w::
Mw = Fie secventa de intrare x*:
2. Se simuleaza M pe intrarea w.
Daca M se opreste si respinge w, atunci Mw respinge x;
daca M accepta w, atunci se trece la Pasul 4.
3. Se simuleaza R pe intrarea x.
Daca R accepta x atunci Mw accepta x.
4. Se utilizeaza MT RP pt a determina daca < Mw>P.
Daca da, atunci A accepta <M,w>, altfel respinge.

Masina Turing vs. alte modele de calcul


Definitia MT, A MT, Mw simuleaza R daca M accepta w, adica:
L( R ), daca M accepta w;
lim bajul L( M w ) =
, altfel.

Am convenit ca <R>P => (cf (ii)) <Mw>P => (def.A) M accepta w =>
<M,w>ACCMT.
=> contradictie.

Masina Turing vs. alte modele de calcul

1. Masina Turing vs. alte modele de calcul


2. Automatul linear marginit
3. Problema lui POST

Masina Turing vs. alte modele de calcul

Definitia 1
Un automat linear marginit (ALM) este un tip restrictionat de MT
in care cursorul nu se poate deplasa pe banda de lucru
inafara zonei care contine secventa de intrare.
Daca functia de tranzitie a MT impune deplasarea cursorului
dincolo de oricare dintre cele 2 capete ale secventei de
intrare, atunci acesta este fortat sa ramana pe loc.

Masina Turing vs. alte modele de calcul

controlul
starilor

Observatia 2
a b a b b
a) Un ALM = o MT cu memorie limitata
=> poate rezolva numai probleme care necesita un spatiu de memorie
egal cu cel necesar memorarii secventei de intrare.
b) spatiul de memorie disponibil pt ALM creste cu un factor
constant
=>spunem ca spatiul de memorie creste linear cu dimensiunea intrarii.
c) ALM: memorie limitata dar putere de calcul mare:
MT pentru ACCAFD, ACCGIC, EMPAFD, EMPGIC sunt ALM.
d) ACCALM este identica cu problema nedecidabila ACCMT dar este
decidabila.
10

Masina Turing vs. alte modele de calcul

Definitia 2
Configuratie a unei MMT = un triplet format din:
starea curenta a M, q;
continutul curent al benzii, v.w ;
pozitia curenta a cursorului.
Notatie
q7
vqw,
v,w*, qQ.
Exemplul 1
Configuratia 1011q701111 inseamna
1 0 1 1

0 1 1 1 1
11

Masina Turing vs. alte modele de calcul

Definitia 3
Configuratia C1 produce configuratia C2
MT trece corect din C1 in C2 intr-un singur pas
Fie a,b,c ,
v,w *,
qi, qj Q
Spunem ca o configuratie C1=vaqibw produce
configuratia C2=vqjacw daca (qi,b)=(qj,c,L);
configuratia C2=vacqjw daca (qi,b)=(qj,c,R).

12

Masina Turing vs. alte modele de calcul


Lema 1
Fie MALM: |Q|=q, ||=s
=> numarul de configuratii distincte ale M pentru o banda de lucru de
lungime n este
q. n . s n .
demonstratie
O configuratie este un pas de calcul efectuat de M pe intrarea primita;
ea consta din starea controlului, pozitia cursorului si continutul benzii.
cf. ip.: M poate fi in una dintre cele q stari,
lungimea benzii este n,
secventele citite sunt compuse din s simboluri
=> pe banda se pot afla sn secvente distincte
=> numarul total de configuratii este dat de produsul celor 3 factori
q.n.s n .
13

Masina Turing vs. alte modele de calcul


Teorema 2
Limbajul
ACCALM = {<M,w> | MALM, w* i M
accepta intrarea w}
este decidabil.

14

Masina Turing vs. alte modele de calcul

demonstraie
L = Fie secventa de intrare <M,w>, unde MALM si w*
1. Se simuleaza M pe intrarea w timp de q.n.sn pasi sau pana ce
M se opreste.
2. Daca M s-a oprit, atunci: daca M a acceptat, L accepta iar daca
M a respins, L respinge.
3. Daca M nu s-a oprit atunci L respinge.
Observatia 3
MT si ALM difera in mod esential: ACCALM= decidabil dar
ACCMT=nedecidabil.
Totusi, alte probleme raman nedecidabile si pt ALM.
15

Masina Turing vs. alte modele de calcul

Metoda istoricului calculului


reductibilitatea PROBLEMEI ACCEPTABILITATII pt MT, ACCMT,
la anumite limbaje
testarea existentei unui obiect sau a unei proprietati.
Exemplul 2
Problema a 10-a a lui Hilbert: existenta radacinilor intregi pentru p,
p=polinom.
Istoricul unui calcul efectuat de o MT pe o secventa de intrare data =
sirul de configuratii prin care respectiva MT trece atunci cand
proceseaza intrarea respectiva.
16

Masina Turing vs. alte modele de calcul


Definitia 4
Fie MMT si w*.
Istoricul unui calcul de acceptare efectuat de M pe w este o
secventa de configuratii C1,C2,,Cf, unde:
C1 este configuratia de start a lui M pentru w,
Cf este o configuratie finala de acceptare a lui M si
2if: Ci se obtine corect din Ci-1 prin aplicarea regulilor
de tranzitie ale M.
Istoricul unui calcul de respingere: Cf este o configuratie finala
de respingere a lui M
Observatia 4
Secventa de configuratii: FINITA
17

Masina Turing vs. alte modele de calcul

Teorema 3
Limbajul
EMPALM = {<M> | MALM i L(M)= }
este nedecidabil.
ideea demonstraiei
Folosim metoda reducerii la absurd si reductibilitatea de la problema
acceptabilitatii.
Fie MMT si w=w1w2wn*; construim un BALM astfel:
L(B) consta din toate istoricele calculelor de acceptare efectuate de M
asupra w;
daca M accepta w atunci limbajul L(B) (consta dintr-o singura
secventa); daca M nu accepta w, atunci L(B)=.
=> Daca am putea determina daca L(B)= am putea determina daca M
accepta w si am obtine contradictia cautata.
18

Masina Turing vs. alte modele de calcul

Fie MMT si w*; vom demonstra existenta BALM si vom descrie


modul in care o MT poate obtine o descriere a lui B pornind de
la descrierile lui M si w:
B accepta secventa de intrare x x este un istoric al unui calcul de
acceptare al M pe w.
=>presupunem ca un istoric al unui calcul de acceptare se prezinta
sub forma unei secvente unice:
# # # # ... # #
C1
C2
C3
Cf

19

Masina Turing vs. alte modele de calcul


B

Modul de lucru al BALM

q3

q5

Ci
Ci+1
1) B primeste secventa de intrare x;
2) B verifica daca x reprezinta un istoric al unui calcul de acceptare al M pe
w:
B divizeaza secventa x in secventele C1, C2, ,Cf, in conformitate
cu delimitatorii #;
B verifica daca acestea satisfac cele 3 conditii din definitia unui
istoric de calcul:
C1 este configuratia de start a lui M pe w:
dar C1=q0w1w2wn; aceasta informatie este cuprinsa in chiar descrierea
<M,w> => B o poate verifica direct;
20

Masina Turing vs. alte modele de calcul


Cf=configuratie finala de acceptare a lui M pe w:
dar Cf trebuie sa contina starea qa => B trebuie sa scaneze secventa Cf pt
a determina prezenta lui qa;
pentru fiecare pereche de configuratii adiacente, B verifica daca
Ci+1 provine, corect, din Ci:
Aceasta verificare presupune:
testarea faptului ca Ci si Ci+1 sunt identice, cu exceptia locatiilor din Ci
aflate sub cursor adiacente acestuia;
actualizarea acestor locatii cf. functiei de tranzitie a lui M;
executarea unei miscari de du-te vino intre locatiile care se corespund
din Ci si Ci+1, pentru a verifica daca actualizarea s-a facut corect;
punctarea simbolului din locatia curent verificata, pentru a tine evidenta
pozitiei curente a cursorului in cele 2 configuratii in timpul acestei
pendulari.
3) Daca cele 3 conditii sunt satisfacute, B incheie prin a accepta intrarea
primita.
21

Masina Turing vs. alte modele de calcul


demonstratie
Fie RMT care decide asupra limbajului EMPALM;
Definim SMT care decide asupra limbajului ACCMT astfel:
S = Fie secventa de intrare <M,w>, unde MMT, w*:
1. Se construieste BALM pe baza descrierilor lui M si w, conform
indicatiilor de mai sus.
2. Se ruleaza R pe intrarea <B>.
3. Daca R respinge, atunci S accepta; daca R accepta, atunci S
respinge.
Observatie
R accepta <B> L(B)= M nu are niciun istoric de calcul de acceptare
pt. w M nu accepta w => S respinge <M,w>.
R respinge <B> L(B) : singura secventa pe care o poate accepta B
este un istoric de calcul de acceptare al M pt w M trebuie sa accepte
w => S accepta <M,w>.
22

Masina Turing vs. alte modele de calcul


Teorema 4
Limbajul
ALLGIC = {<G> | GGIC i L(G)= * }
este nedecidabil.
ideea demonstraiei
Folosim metoda reducerii la absurd si reductibilitatea de la
problema acceptabilitatii precum si tehnica istoricului calculului
efectuat pt un cuvant.
Fie MMT si w*, oarecare: sa pp ca reprezentam un istoric al
calculului de acceptare al M pe w prin #C1#C2#...#Cf#, unde Ci
este configuratia lui M la pasul i din calculul lui w.
23

Masina Turing vs. alte modele de calcul


construim o GGIC care genereaza toate cuvintele din *
M nu accepta w.
Daca M accepta w (cf. def. G de mai sus) x*: xL(G); acest cuvint
este tocmai istoricul calculului de acceptare al M pe w.
=> G este construita astfel incat sa genereze toate cuvintele care nu sunt istorice
ale calculelor de acceptare ale M pe w.

Observatii

1) x* nu poate fi un istoric de calcul de acceptare


nu indeplineste cel putin una dintre cele 3 conditii din Definitia 2, adica:
(1) nu incepe cu C1;
(2) nu se termina cu o configuratie finala de acceptare;
(3) 1i f-1: configuratia Ci nu produce corect, in conformitate cu regulile
de tranzitie din M, configuratia Ci+1.
2) in loc sa construim o GGIC vom construi un DAPD deoarece exista o
procedura algoritmica de convertire a unui APD intr-o GIC si un APD este
in cazul nostru - mai usor de construit.
24

Masina Turing vs. alte modele de calcul


Astfel, D va incepe prin a ghici nedeterminist pe care dintre cele 3 reguli sa le
verifice; => in arborele de derivare va exista un nod din care pornesc 3 ramuri de
calcul:
pe prima ramura se verifica daca secventa de intrare incepe cu configuratia
initiala, C1 si accepta in cazul negativ;
pe a 2a ramura se verifica daca secventa de intrare se incheie cu configuratia
finala de accepatre, Cf si accepta in cazul negativ (verificarea revine la
identificarea prezentei lui qa in Cf);
pe a 3a ramura se verifica daca exista vreo configuratie Ci care nu produce
corect configuratia adiacenta Ci+1. Se procedeaza astfel:
- D scaneaza intrarea #C1#C2#...#Cf# pana decide in mod
nedeterminist ca a ajuns la configuratia Ci;
- D introduce Ci in stiva, pana la delimitatorul #;
- D extrage din stiva pt a face comparatia cu Ci+1; cele 2 secvente ar
trebui sa coincida, mai putin in dreptul si in jurul cursorului unde relatia dintre ele
ar trebui sa respecte definitia functiei de tranzitie a lui M;
- D ar trebui sa accepte daca exista o nepotrivire intre configuratii sau
daca actualizarea nu a respectat definitia lui M.
25

Masina Turing vs. alte modele de calcul


Problema prezenta in aceasta strategie este ca extragerea Ci din stiva se
face in ordinea inversa introducerii, ceea ce impiedica compararea ei
cu Ci+1.
Pt a evita aceasta dificultate, vom reprezenta de la bun inceput secventa
de intrare formata din sirul de configuratii C1,C2,...,Cf, astfel:

# # # # # ... # #

Cf
C1
C3
CR
CR
2
4
=> acum D poate introduce in stiva configuratia a.i. atunci cand o extrage
sa o poata compara cu configuratia urmatoare.
Proiectam DAPD a.i. sa accepte orice secventa care nu este un istoric de
calcul de acceptare in forma modificata de mai sus.
26

Masina Turing vs. alte modele de calcul

1. Automatul linear marginit


2. Masina Turing vs. alte modele de calcul
3. Problema corespondentei lui Post

27

Masina Turing vs. alte modele de calcul


Definim o multime de dominouri astfel:
b a ca abc
, , ,

ca ab a c

Putem intotdeauna forma o secventa din dominourile din multime a.i.


secventa numaratorilor sa coincida cu secventa numitorilor
(i.e. intotdeauna o coincidenta?)
Exemplu:
a b ca a abc
, , , ,
abcaaabc

ab
ca
a
ab
c

Contraexemplu:

abc ca acc

, a , ba
ab

=> Problema corespondentei lui Post (PCP) revine la a determina,


pentru orice multime de dominouri, daca prezinta o coincidenta
sau nu.
28

Masina Turing vs. alte modele de calcul


Formalizam PCP astfel:
o instanta a PCP este o colectie P de dominouri definita prin:
t t t
P = 1 , 2 ,..., n .
b1 b2 bn

o coincidenta este o secventa de indici i1,i2,,ik astfel incat:


ti ti ...ti = bi bi ...bi .
1 2 k
1 2
k

PCP consta in a determina daca o colectie oarecare de


dominouri P prezinta o coincidenta.
Teorema 5
Limbajul
{ <P> | P este o instanta a PCP care prezinta o coincidenta }.
este nedecidabil.
29

Masina Turing vs. alte modele de calcul

1. Masina Turing vs. alte modele de calcul


2. Automatul linear marginit
3. Problema corespondentei lui Post

30

Complexitatea modelelor de calcul

1.
2.
3.
4.

Terminologie
Notatia asimptotica
Analiza algoritmilor
Complexitatea modelelor de calcul

Complexitatea modelelor de calcul

Problema rezolvabila algoritmic n principiu


Problema nerezolvabil algoritmic n practic
Timpul de calcul
Spaiul de memorie

Complexitatea modelelor de calcul


Fie limbajul
Lk = {w*| k0: w=0k1k};
Lk LIC si
ACCLIC este decidabil
=> Lk = decidabil.
Problema care ne intereseaza acum este insa:
dupa cat timp o MT raspunde afirmativ la aceasta
ntrebare?
3

Complexitatea modelelor de calcul


(I) Fie M1MT, o MT clasica care calculeaza Lk.
M1 = Fie cuvntul 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 urmtoare, att timp ct pe band exist
att simboluri 0 ct 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 rmas simboluri 1 nebarate, sau dac,
dup ce toate simbolurile 1 au fost barate pe band au
mai rmas simboluri 0 nebarate, atunci M1 respinge w.
Altfel, dac toate simbolurile 0 i toate simbolurile 1 de
pe band au fost barate, atunci M1 accept secvena w.
4

Complexitatea modelelor de calcul


Numrul de pai executai de un algoritm poate depinde de
mai muli parametri.
Exemplu: data de intrare este un graf
numrul de pai: numrul de noduri / muchii, de gradul
maxim al grafului, de o combinaie a acestor factori i /
sau a altora.
Aici, TIMPUL DE EXECUTIE: funcie de LUNGIMEA
SECVENTEI
Se pot aborda:
cazul cel mai nefavorabil;

cazul cel mai favorabil;

cazul mediu.
5

Complexitatea modelelor de calcul

1.
2.
3.
4.

Terminologie
Notatia asimptotica
Analiza algoritmilor
Complexitatea modelelor de calcul

Complexitatea modelelor de calcul


Definitie 1
Fie M o MT determinista cu 1! banda, decidenta,
w* un cuvant de intrare,
C0C1C2CdCf. cele d+2, d0, configuratii prin care trece M pentru a
prelucra cuvantul w;
Complexitatea timp a M pe intrarea w este numarul intreg notat
TIMEM(w) = d+1
Definitie 2
Fie M o MT determinista cu 1! banda decidenta.
Complexitatea timp timpul de executie al M este o functie
f : N N, definita prin:
f(n) = numrul maxim de pai executai de M pentru o secvena
de intrare de lungime n, nN .
Notatia 1
f(n) = max {TIMEM(w) | wn} = TIMEM(n)
7

Complexitatea modelelor de calcul


Exemplul 1
Fie f : N N, f(n) = 5n3 + 2n2 + 22n + 6;
spunem c f tinde asimptotic ctre n3 i notm acest lucru cu O(n3)
Definiie 3
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 nct f(n) c1.g(n), () n
n 1.
c1.g(n)

f(n)

n1

Complexitatea modelelor de calcul


(ii) f(n) = (g(n)) i citim f(n) este de ordin cel puin g(n)
sau f(n) este omega mare de g(n)
() constantele c2 > 0 i n2 N astfel nct f(n) c2.g(n),
() n n2.
f(n)

c2.g(n)

n2

Complexitatea modelelor de calcul


(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

Spunem c g este o limit asimptotic superioar,


o limit asimptotic inferioar, respectiv
o limit asimptotic pentru f.
10

Complexitatea modelelor de calcul


Exemplul 2
Revenim la notaia O i la funcia 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 nct
5n3 + 2n2 + 22n + 6 c1.n2, () n n1
5n3 + (2- c1).n2 + 22n + 6 0 etc.
11

Complexitatea modelelor de calcul


Exemplul 3
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) f2(n) = O(n2)
pentru c O(n2) domin O(n).
Observaia 1
A) Specificarea bazei logaritmilor nu este necesar ea intervenind cu cel mult un
log x
coeficient constant, conform formulei: log a x = b
logb a

B) Analog, nici specificarea bazei exponenialei nu este necesar pentru c:


log x
clog2 n
x > 0 : 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.
12

Complexitatea modelelor de calcul


Observaia 2
Limitele asimptotice
Limitele asimptotice
Limitele asimptotice
Limitele asimptotice

de tipul nc se numesc limite polinomiale.

de tipul 2 n se numesc limite exponeniale.


de tipul k.n se numesc limite lineare.
de tipul n se numesc limite sublineare.

Observaia 3
Pe lng notaiile O i mai exist i notaiile o i , obinute
din Definiia 2 prin nlocuirea inegalitii cu inegalitatea
strict < , sau
f ( n)
f (n) = o( g (n)) lim
=0
n g (n)
13

Complexitatea modelelor de calcul


Exemplul 4
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)

14

Complexitatea modelelor de calcul


Propozitia 1
(i) Notaiile O, , , o, sunt tranzitive:
f(n) = O(g(n)) & g(n) = O(h(n)) f(n) = O(h(n)) etc.;
(ii) Notaiile O, , , sunt reflexive, dar nu i o,
f(n) = O(f(n)) dar f(n) o(f(n)) etc.;
(iii) Notaia este simetric dar nu i celelalte notaii:
f(n) = (g(n)) g(n) = (f(n)).

15

Complexitatea modelelor de calcul


Propozitia 2
Notaiile O, etc. pot fi manipulate algebric, dar cu precautie
(de ex. egalitatea din formula (5) are loc intr-un singur
sens: de la stanga la dreapta):
1. c.O(f(n)) = O(f(n));
2. O(f(n)) + O(f(m)) = O(f(n));
3. O(O(f(n))) = O(f(n));
4. O(f(n)) . O(g(n)) = O(f(n).g(n));
5. O(f(n).g(n)) = f(n).O(g(n)).
16

Complexitatea modelelor de calcul

1.
2.
3.
4.

Terminologie
Notatia asimptotica
Analiza algoritmilor
Complexitatea modelelor de calcul

17

Complexitatea modelelor de calcul


Lk = {w* | k0: w=0k1k}.
Fie | 0k1k | = n.
Pentru a efectua prima etap a algoritmului trebuie n pai
O(n) pai.
Aducerea cursorului n extr. stng pentru a ncepe bararea: n pai
O(n) pai.
n etapele 2, 3 MT scaneaz n mod repetat banda pentru a bara
simbolurile 0 i 1.
Fiecare scanare necesit n pai iar la fiecare scanare se bareaz 2
simboluri
se fac n/2 scanri de cte n pai fiecare O(n2) pai.
n etapa 4, MT face o singur scanare pentru a hotr dac accept /
respinge secvena de intrare
se execut maximum n pai O(n) pai.
f(n) = O(n) + O(n) + O(n2) + O(n) = O(n2)
18

Complexitatea modelelor de calcul


Definiia 4
Fie o functie t : N R+.
Se definete clasa de complexitate timp polinomial prin:
TIME(t(n))={L*|() o MT care decide asupra L n timp O(t(n))}
Exemplul 5
Lk = {w*| k0: w=0k1k} TIME(n2) pentru c:

M1 decide asupra Lk n timp O(n2),

TIME(n2) conine toate limbajele asupra crora se poate


decide n timp O(n2).
Putem defini o MT care s decid asupra limbajului Lk mai repede?
19

Complexitatea modelelor de calcul

(II) Modificm MT M1 astfel nct la fiecare etap 3 barm cte


dou simboluri 0 i dou simboluri 1
reducem numrul de scanri din etapa 3 la jumtate
avem n/4 scanri de cte maximum n pai fiecare
O(n2)
aceast reducere inseamn un factor constant egal cu 2
=> nu afecteaz timpul asimptotic de execuie al algoritmului;

20

Complexitatea modelelor de calcul


M2 = Fie cuvntul de intrare w *:
1. Se scaneaza banda de intrare; daca w nu este de forma 0+1+ atunci
M2 respinge.
2. Se execut urmtoarele dou etape, att timp ct pe band exist
att simboluri 0 ct i simboluri 1 nebarate:
3. Se scaneaz banda pentru a determina dac numrul total de
simboluri 0 i 1 aflat pe band este impar.
Dac da, atunci M2 respinge.
4. Se scaneaz banda din nou si se bareaza fiecare al doilea simbol
0 incepand de la primul 0 si apoi fiecarea al doilea simbol 1 incepand
de la primul 1.
5. Dac, dup ce toate simbolurile 0 au fost barate pe band au mai
rmas simboluri 1 nebarate, sau dac, dup ce toate simbolurile 1
au fost barate pe band au mai rmas simboluri 0 nebarate, atunci
secvena w se respinge.
Altfel, dac toate simbolurile 0 i toate simbolurile 1 de pe band
au fost barate, atunci secvena w se accept.
21

Complexitatea modelelor de calcul


Este evident similitudinea dintre masinile M1 i M2;
=> M2 decide asupra limbajului Lk.
Calculm acum timpul su de execuie:
observm c fiecare etap se execut n O(n) pai;
numrm de cte ori se execut fiecare etap:
etapa 1: 1! dat,
etapa 5: 1! dat,
etapa 4: la fiecare scanare se bareaz cel puin 1/2 din numarul de
simboluri 0 i 1/2 din numarul de simboluri 1
e nevoie de cel mult (1+log2n) scanri pentru a bara toate
simbolurile
etapele 2,3,4 se execut de cel mult (1+log2n) ori.
timpul de execuie pentru M2 este de:
1.O(n) + (1+log2n).O(n) + 1.O(n) = O(n.log n) + O(n) = O(n.log n)
LkTIME (n.log n)
22

Complexitatea modelelor de calcul

Putem micsora in continuare timpul de executie?


o(n.logn)=?
Teorema 1
Fie f : N R+ cu proprietatea: f(n) = o(n.logn)
=> TIME(f(n)) = {L* | LLR}

23

Complexitatea modelelor de calcul


Limbajul Lk poate fi decis chiar n timp linear dac MT respectiv
are dou benzi. Fie masina Turing M3 cu doua benzi definit astfel:
M3 = Fie cuvntul de intrare w *:
1. Se scaneaza banda de intrare; daca exista cel putin un simbol 0 la
dreapta unui simbol 1, atunci M3 respinge.
2. Se scaneaz subirul de simboluri 0 de pe banda 1 a MT pn la
ntlnirea primului simbol 1 i se copiaz pe banda 2 a MT.
3. Se scaneaz subirul de simboluri 1 rmas pe banda 1 a MT pn la
sfrit, barndu-se pentru fiecare simbol 1 scanat cte 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 rmas simboluri 1 de citit sau dac pe banda 2 au mai
rmas simboluri 0 nebarate dar pe banda 1 nu mai sunt simboluri 1
de citit, atunci M3 respinge.
Altfel, dac toate simbolurile 0 de pe Banda 2 au fost barate iar pe
banda 1 nu au mai rmas simboluri 1 de citit, atunci M3 accept.24

(III)

Complexitatea modelelor de calcul

Evident, M3 decide asupra limbajului Lk;


Calculam timpul su de execuie:
fiecare etap necesita cel mult O(n) pasi si se execut o
singur dat
=> timpul de executie este linear si
el nu mai poate fi imbunatatit pt ca citirea secventei de
intrare necesita n pasi.

25

Complexitatea modelelor de calcul


Observaie important
cu o MT cu o singur band, Lk este decidabil n timp O(n2)
sau O(n.log n);
nici o MT determinista cu o singur band nu poate ameliora
performana de mai sus;
cu o MT cu dou benzi, Lk este decidabil n timp O(n).
complexitatea timp a problemei Lk poate fi ameliorata
dac gsim un algoritm mai eficient (o MT mai eficient)
complexitatea problemei Lk depinde de modelul de
calculabilitate ales.

26

Complexitatea modelelor de calcul


n teoria calculabilitii:
Teza Church-Turing arat c toate modelele de calculabilitate valabile
sunt echivalente ntre ele;
n teoria complexitii:
alegerea unui model de calculabilitate afecteaz complexitatea-timp a
limbajului (problemei):
un limbaj care intr-un model de calculabilitate este decidabil n timp
linear poate s fie in alt model de calculabilitate decidabil doar n
timp polinomial.
Faptul c acelai limbaj poate necesita timpi de calcul diferii n diferite
modele de calculabilitate pare s torpileze orice incercare de clasificare
a problemelor de calculabilitate n funcie de complexitatea timp a
acestora.
Necesarul de timp de calcul nu difer n mod esenial la nivelul modelelor
de calcul deterministe.
27

Complexitatea modelelor de calcul

1.
2.
3.
4.

Terminologie
Notatia asimptotica
Analiza algoritmilor
Complexitatea modelelor de calcul

28

Complexitatea modelelor de calcul


Vom analiza trei modele de calculabilitate:
MT cu o singur band (clasic);
MT cu mai multe benzi;
MT nedeterminist.

29

Complexitatea modelelor de calcul


Teorema 2
Fie t : N N o functie cu proprietatea c
nN : t(n)n.
=> MMT cu mai multe benzi i cu
timp de lucru t(n)
SMT, cu 1! band de intrare i cu
timp de lucru O(t2(n)): L(S)=L(M).
30

Complexitatea modelelor de calcul


demonstratie
Fie MMT cu k benzi de intrare care ruleaz n timp t(n), t : N N, t(n)n, nN .
Construim (dup metoda utilizat anterior) o MT S cu o singur band de intrare
care s simuleze M i analizm timpul de lucru care necesar.
Iniial, S depune pe banda sa de intrare coninuturile celor k benzi al M,
separndu-le printr-un caracter special, #, #S = M;
n plus, S simuleaz poziiile cursoarelor lui M prin bararea simbolurilor
corespunztoare de pe banda sa (nlocuiete un simbol s cu s, s S=M).
Apoi, S simuleaz paii efectuai de M pentru un cuvnt de intrare oarecare,
w*. Pentru a simula un pas efectuat de M, S:

trebuie s scaneze toat informaia depus pe banda sa de intrare ca s poat


astfel determina simbolurile aflate sub cursoarele lui M;

apoi, S i parcurge din nou banda de intrare pentru a actualiza coninutul


acesteia i a repoziiona cursoarele virtuale, conform definiiei funciei de
tranziie a lui M, M.

dac vreunul dintre cursoarele reale ale M se deplaseaz la dreapta pe


propria sa band de lucru peste o celul vid, atunci S trebuie s-i mreasc
spaiul alocat pe unica sa band de intrare.
S face acest lucru deplasnd toat informaia (aflat pe banda sa la dreapta
celulei respective) cu o locaie la dreapta.
31

Complexitatea modelelor de calcul

Analizm acum aceast simulare din punctul de vedere al timpului


de calcul necesar.
Pentru fiecare pas executat de M, S parcurge de 2 ori poriunea
activ (cu informaie) a benzii sale de intrare:
prima parcurgere servete la obinerea informaiei necesare
pentru a determina micarea urmtoare;
a doua parcurgere servete la efectuarea acestei micri.
Timpul necesar efecturii acestor parcurgeri este evident determinat
de numrul celulelor cu informaie de pe banda lui S.
=> cutm deci o limit superioar pentru aceast lungime.

32

Complexitatea modelelor de calcul


Conform constructiei lui S:
marcheaz extremitateastng a benzii
numrul de celulecu informaie de pe prima band
delimitatorul celor dou benzi alturate
(S) = 1 + (M1) + 1 + (M2) + 1 + + (Mk) + 1
1 + t(n) + 1 + t(n) + 1 + + t(n) + 1 1 + k.t(n) + k

Conform ipotezei, M ruleaz n timp t(n),


deci efectueaz t(n) pai utiliznd:

exact t(n) celule de pe banda


sa, dac cursorul se
deplaseaz mereu la dreapta;
mai puin de t(n) celule, dac
exist i deplasri la stnga.

33

Complexitatea modelelor de calcul


Deci, S scaneaz poriunile cu informaie de pe banda sa de intrare
n O(t(n)) pai (modulo constantele k i k + 1, banda lui S
este la fel de lung ca oricare dintre benzile lui M).
(*)
b) Evalum acum fiecare pas al lui S:
Pentru a simula oricare dintre paii lui M , S efectueaz 2 scanri
ale benzii sale i maximum k deplasri ale informaiei sale la
dreapta.
Conform (*), fiecare dintre aceti pai consum:
un timp de calcul de ordinul O(t(n)) pentru fiecare dintre cele
dou scanri i
un timp de lucru constant pentru cele maximum k deplasri la
dreapta (cnd cursoarele virtuale ajung peste delimitatori).
=> timpul total n care S simuleaz un pas oarecare l lui M este
de ordin O(t(n)).
34

Complexitatea modelelor de calcul


c) Insumm acum i gsim o limit superioar a timpului total:
n prima etap, n care S copiaz pe banda sa informaiile de pe
cele k benzi ale M i le separ prin delimitatorii #, lui S i
sunt necesari O(n) pai deoarece, conform ipotezei, M ruleaz
pe o intrare de lungime n n timp t(n).
Ulterior, S simuleaz fiecare dintre cei (conform ipotezei) t(n) pai
ai lui M n O(t(n)) pai
=> aceast parte a simulrii lui M de ctre S consum.
t(n) x O(t(n)) = O(t2(n))

n total, ntreaga simulare consum


O(n) + O(t2(n)) pai
Dar, cf. ip.: t(n) n, () n N.
=> putem aprecia timpul total de execuie al lui S la O(t2(n)). 35

Complexitatea modelelor de calcul


Observaia 4
Ipoteza t(n) n, () n N nu este restrictiv, ci dimpotriv: n
caz contrar, M nu ar avea timp nici mcar s citeasc
toat informaia, darmite s o prelucreze!

36

Complexitatea modelelor de calcul


MT determinista

MT nedeterminista

respinge

f(n)

.
.
.

accepta / respinge

f(n)
respinge

accept

37

Complexitatea modelelor de calcul


Definitie 5
Fie N o MT nedeterminista cu 1! banda, decidenta,
wL(M)*;
Complexitatea timp a N pe intrarea w este numarul intreg notat TIMEN(w)
care reprezinta lungimea celui mai scurt calcul care accepta w,
efectuat de N.
Definitie 6
Fie N o MT nedeterminista cu 1! banda, decidenta,
Complexitatea timp timpul de executie al N este o functie
f : N N, definita prin:
f(n) = numrul maxim de pai executai de N pentru un cuvant
wL(N)n, nN .
Notatia 2
f(n) = max {TIMEN(w) | wL(N) n} = TIMEN(n)
38

Complexitatea modelelor de calcul


Teorema 3
Fie t : N N cu proprietatea c nN: t(n)n.
=> NMT nedeterminist cu o singur band de intrare
i cu timp de lucru t(n)
DMT determinist cu o singur band de
intrare i cu timp de lucru 2O(t(n)): L(D)=L(N).

39

Complexitatea modelelor de calcul


demonstraie
Relum procedura prin care n teorema anterioar am construit MT cu
3 benzi, M3, pornind de la MT nedeterminist cu 1! band, N. Incepem
prin a examina arborele de derivare al lui N.
Fie o secven de intrare oarecare w*, |w|=n, nN. => i putem asocia
un arbore de derivare n care s figureze TOATE posibilitile prin care
N poate calcula w. Acest arbore are urmtoarele caracteristici:
(i) lungimea maxim a ramurilor de calcul este, cf.ip., t(n);
(ii) numrul maxim de descendeni ai unui nod oarecare este b, unde
b=nr.max. de alegeri corecte din definiia funciei de tranziie a lui N,
N.
=> (iii) numrul maxim de frunze ale acestui arbore este bt(n) i
(iv) numrul total de noduri din acest arbore este de ordin O(bt(n)).
40

Complexitatea modelelor de calcul


Examinm acum modul n care M3 simuleaz N.
Simularea presupune explorarea arborelui de derivare;
cf.ip.: N este decident
=> N se oprete pe orice intrare w*
=> putem folosi oricare dintre metodele de parcurgere a arborilor
(inclusv DEPTH-FIRST!)
=> putem aprecia c timpul necesar atingerii unui nod plecnd din
rdcin este O(t(n)) (cf. obs. (i));
=> timpul de lucru pentru M3 este cf.obs. (iv): O(t(n).bt(n)) = 2O(t(n))
=> timpul de lucru necesar convertirii M3 la D (MT determinist cu 1!
band) este cf. teoreme ant. : (2O(t(n)))2=2O(2.t(n))= 2O(t(n)).
41

Complexitatea modelelor de calcul

1.
2.
3.
4.

Terminologie
Notatia asimptotica
Analiza algoritmilor
Complexitatea modelelor de calcul

42

Clasa P
1. Clasa P; timpul polinomial
2. Exemple de probleme cu timp de calcul
polinomial determinist

Clasa P
Complexitatea timp a problemelor se modific

cu un factor polinomial (o ridicare la ptrat) atunci cnd


trecem de la MT cu mai multe benzi la MT cu o singur
band (ambele deterministe);

cu un factor exponenial atunci cnd trecem de la MT


nedeterministe la MT deterministe (ambele cu o singur
band).

Clasa P
Conceptul de calculabilitate si nu un model de
calculabilitate in particular
diferenta de comportament intre clasa
functiilor de tip polinomial si clasa functiilor
de tip exponential;
diferentele de timp de lucru de tip polinomial
sunt aproape nesemnificative in timp ce
diferentele de tip exponential sunt importante
3

Clasa P
Toate modelele de calculabilitate
deterministe rezonabile sunt
POLINOMIAL ECHIVALENTE,
adic simularea unuia cu instrumentele
celuilalt antreneaz doar o cretere
polinomial a timpului de lucru.

Clasa P
Definitia 1
Notm cu P clasa limbajelor decidabile n timp polinomial
determinist de ctre MT deterministe cu o singur
band de intrare:
P=

TIME (n k )

k N

Aceast clas de probleme are urmtoarele proprieti:


(a) este invariant fa de toate modelele de calculabilitate
care sunt polinomial echivalente cu MT deterministe cu
o singur band de intrare;
(b) corespunde clasei de probleme practic rezolvabile cu un
calculator real.
5

Clasa P
1. Clasa P; timpul polinomial
2. Exemple de probleme cu timp de calcul
polinomial determinist

Clasa P
Cteva precizri
vom descrie algoritmii tot cu ajutorul etapelor i pailor, ca i n
cazul MT;
vom calcula timpul de lucru al algoritmilor n 2 trepte:
vom cuta o limit superioar a numrului de etape i pai
executai de algoritm pe o intrare oarecare n N,
vom examina fiecare pas al algoritmului pentru a determina
dac poate fi implementat n timp polinomial, cu ajutorul unui
model de calculabilitate determinist, rezonabil,
ntruct compunerea a 2 polinoame este nc un polinom,
vom putea conchide c algoritmul ruleaz n timp polinomial;
7

Clasa P
vom utiliza o metod rezonabil de
codificare a problemelor:
vom folosi tot codificarea sub forma
unei secvene pe care o vom nota cu
< >
vom aprecia c o metod de
codificare este rezonabil dac ea
folosete un timp de lucru polinomial
.
8

Clasa P

Teorema 1
Fie limbajul PATH = { <G,s,t> | G este un
digraf n care exist un drum de la nodul
s la nodul t } => PATH P.

Clasa P
demonstratie
Urmtorul algoritm rezolv problema PATH n timp polinomial:
M = Fie secvena 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 3 att timp ct mai pot fi marcate noi noduri:
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.
4. Dac t este marcat atunci M accept secvena de intrare
<G,s,t>, altfel respinge.

10

Clasa P
Analizm complexitatea timp a acestui algoritm:
(i)
evident, prima i ultima etap se execut o singur dat;
etapa a 3a se execut de cel mult m ori ;
numrul total de pai este 1 + m + 1, deci O(m).
(ii)
prima i ultima etap se implementeaz uor n timp polinomial, n
oricare dintre modelele deterministe rezonabile;
etapa a 3a presupune o scanare a nodurilor i o testare a strii
acestora: marcat / nemarcat; deci i aceste operaii se pot implementa
n timp polinomial
complexitatea timp a acestui algoritm de rezolvare a problemei PATH
este polinomial n raport cu numrul de noduri ale grafului.
11

Clasa P

Etapa

Nr. pasi

2m2

Nr. executii

=> O(1).O(1) + O(m).O(m2) + O(1).O(m) = O(m3).

12

Clasa P
Teorema 2
Fie limbajul RELPRIME= { <x,y> | (x,y)=1 }
=> RELPRIME P.
demonstratie
(i) construim o MT, E, care calculeaza cmmdc{x,y} cu
algoritmul lui Euclid

13

Clasa P

E = Fie secventa de intrare <x,y>, x,yN, reprezentate in baza 2:


1. Se repeta pasii 2 si 3 pana cand y=0:
2. Se atribuie xx mod y.
3. Se interschimba x si y.
4. Se returneaza x.
(ii) construim o MT, R, care rezolva problema RELPRIME apeland
MT, E, ca subrutina
R = Fie secventa de intrare <x,y>, x,yN, reprezentate in baza 2:
1. Se ruleaza E pe intrarea <x,y>.
2. Daca rezultatul returnat de E este 1 atunci R accepta, altfel:
respinge.
14

Clasa P
(a)

demonstram ca fiecare executie a ciclului format din etapa a 2a si etapa a 3-a (eventual cu exceptia primei executii) reduce
valoarea lui x cel putin la jumatate
se executa etapa 2 => obtinem x<y (cf. def. operatorului mod)
se executa etapa 3 => obtinem x>y (pt ca x si y se interschimba)
se executa din nou etapa 2 => obtinem din nou x<y etc.
Distingem 2 cazuri:

daca x/2 y x mod y < y x/2 => x se reduce cel putin la


jumatate;

daca x/2 < y x mod y = x-y < x/2 => x se reduce cel putin la
jumatate.

15

Clasa P
(b) calculam numarul de executii ale ciclului format din etapa a 2-a
si a 3-a
fiecare executie a etapei 3 valorile lui x si y se interschimba
=> fiecare executie a ciclului valorile initiale ale x si y se reduc cel
putin la jumatate, alternativ
=> numarul maxim de executii ale ciclului format din etapa 2 si 3
este
min { 2log2x, 2log2y }.
Dar log2x ~ |xbaza=2|
=> numarul de executii ale ciclului format din etapa 2 si 3 este de
ordin O(n).
Fiecare etapa se executa intr-un singur pas
=> fiecare etapa utilizeaza un timp polinomial
=> timpul total de executie al algoritmului este polinomial
16

Clasa P
Teorema 3
LLIC => LP.
Observaie:
Teorema anterioara: LLIC este decidabil dar
algoritmul folosit n demonstraie ruleaz n timp exponenial.
Justificare:
Fie L LIC => GFNC astfel nct L=L(G) (cf. teorema anterioara).
Fie wL, |w|=n, nN; orice derivare n G pentru w va avea exact 2n-1 pai
=> este suficient s verificm toate derivrile de lungine 2n-1:
dac gsim o derivare care produce w, atunci MT accepta, altfel respinge.
Dar:
lungimea derivrilor crete polinomial cu lungimea cuvintelor dar
numrul derivrilor de lungime k, k N; crete exponenial cu
lungimea derivrilor
=> trebuie cutat un algoritm care s lucreze n timp polinomial;
17
Metoda programrii dinamice.

Clasa P
Informal,
metoda programrii dinamice const n rezolvarea problemei date prin rezolvarea
subproblemelor de dimensiuni mari pe baza acumulrii de informaii despre
subproblemele de dimensiuni mici.
Formal:
metoda programrii dinamice const din determinarea soluiei prin luarea unui ir de
decizii d1,d2,,dn (unde di=transform problema dat din starea si-1 n starea
si, 2in) respectnd principiul de optim (de minim sau de maxim).
Conform acestui principiu, dac d1,d2,,dn este un ir optim de decizii care
transform problema dat din starea iniial s0 n starea final sn, atunci este
ndeplinit una dintre condiiile:
a) dk,,dn este un ir optim de decizii care duce problema din starea sk-1 n starea
sn, 1kn;
b) d1,,dk este un ir optim de decizii care duce problema din starea s0 n starea sk,
1kn;
c) dk+1,,dn i d1,,dk sunt iruri optime de decizii care duc problema din starea sk
n starea sn, respectiv din starea s0 n starea sk, 1kn.
Cazul (a): metoda "nainte, ordinea deciziilor: dn, dn-1,, d1; di depinde de di+1,,dn.
Cazul (b): metoda "napoi, ordinea deciziilor: d1, d2,, dn. di depinde de d1,d2,,di-1.
n cazul (c) spunem c aplicm metoda mixt.
18

Clasa P
ideea demonstraiei
Vom considera urmtoarele subprobleme:
"fie o variabil oarecare A din GFNC i fie un subcuvnt oarecare v al lui
w, wL;
este adevrat c A ==>* v ?"
Urmtorul algoritm va memora intr-o matrice ptratic de ordin n x n,
n=|w|, soluiile acestor subprobleme astfel:
1ijn: celula (i,j) din matrice conine mulimea variabilelor din G care
genereaz subcuvntul wiwi+1wj w.
Algoritmul completeaz celulele matricei pentru fiecare subcuvnt al lui w,
indiferent de lungimea acestuia:1,2,,k,,n=|w|;
incepe cu celulele pentru cuvintele de lungime 1: (i,i), 1in = |w|;
continu cu celulele pentru cuvintele de lungime 2: (i,i+1), 1in-1;
apoi cu celulele pentru cuvintele de lungime 3 etc.,
folosind la completarea celulelor pentru subcuvintele de lungime k, 2k n,
informaia din celulele deja completate pentru subcuvintele de lungime
1,2,...,k-1.
19

Clasa P
S presupunem, de exemplu, c algoritmul a determinat ce variabile
din G genereaz toate subcuvintele lui w de lungime cel mult k.
Pentru a determina dac o variabil oarecare A genereaz un
subcuvnt oarecare v de lungime k+1 al lui w, algoritmul:
(i) mparte acel subcuvnt v n alte 2 subcuvinte nevide n toate cele
k moduri posibile;
wi wi+1wkwi+k+1

20

Clasa P
(ii) pentru fiecare divizare a lui v, algoritmul examineaz fiecare
regul de tip ABC pentru a verifica dac:
B genereaz 10 subcuvnt al lui v,
C genereaz al 2-lea subcuvant al lui v
i face acest lucru folosindu-se de celulele deja calculate din
matrice.
Dac att B ct i C genereaz respectivele subcuvinte ale v,
=> A genereaz v
=> algoritmul adaug neterminalul A n celula corespunztoare
din matrice;
(iii) algoritmul ncepe acest proces cu cuvintele de lungime 1, prin
examinarea matricei pentru produciile de tipul A b.
21

Clasa P
demonstraie
Prezentm algoritmul, notat D:
Fie GGIC, G n FNC, care genereaz LLIC i fie S simbolul
de start al G.
D = "Fie cuvntul de intrare w=w1w2wn:
1. Dac w= i dac producia S se afl n G, atunci D
accept.
// este tratat cazul special al cuvantului vid
2. Pentru i=1,2,,n:
3. Pentru oricare variabila A din G:
4. Se verific dac producia A b unde b=wi se afl n G.
5. Dac da, atunci variabila A este depus n celula (i,i) din
matrice.
22

Clasa P
6. Pentru k=2,,n:
// k = lungimea unui subcuvnt v al lui w
7. Pentru i=1,2,,n-k+1:
// i = indicele iniial (de start) al
subcuvntului v din w
8. Fie j=i+k-1:
// j = indicele final al subcuvntului v din w
9. Pentru t=i,,j-1
// t = indicele final al primului
subcuvnt al lui v w
10. Pentru orice producie A BC:
11. Dac celula (i,t) din matrice conine variabila B
iar celula (t+1,j) din matrice conine variabila C
atunci se depune variabila A n celula (i,j).
12. Dac variabila S apare n celula (1,n) din matrice, atunci D
accept, altfel D respinge."
23

Clasa P
Analizm algoritmul din punct de vedere al complexitii timp;
observm c el se compune din 4 etape: 1, 2,, 6,, 12.
Complexitatea alg. se obine prin nsumarea complexitilor acestor
etape:
Etapele 1 i 12 se execut, evident, 1! dat i au cte 1! pas;
Pentru a calcula numrul de execuii ale etapelor 2-5, procedm
din aproape n aproape:
etapa a 2-a se executa de n=|w| ori;
pentru fiecare execuie a etapei a 2-a, etapa a 3-a se execut
de m ori, m=card(V) = nr. de variabile din G =>
paii 4 i 5, cei mai "interiori" din etapa a 2-a, se execut de
n.m ori,
intruct m = o constant fixat, independent de n
aceste etape sunt de ordin O(n);
24

Clasa P
Pentru a calcula numrul de execuii ale etapelor 6-11, procedm
ca mai sus:
etapa a 6-a se execut de cel mult n ori;
pentru fiecare execuie a etapei a 6-a, etapa a 7-a se execut
tot de cel mult n ori;
pentru fiecare execuie a etapei a 7-a, etapa a 8-a se execut
1! dat iar etapa a 9-a se execut de cel mult n ori;
pentru fiecare execuie a etapei a 9-a, etapele a 10-a i a 11-a
se execut de cel mult r ori , unde r= numrul de producii din
G;
intruct r = o constant fixat, independent de n
etapa a 11-a cea mai "interioar" din algoritm se
execut de O(n3) ori;
=> algoritmul este de ordin O(1)+O(n)+O(n3)+O(1) = O(n3).
=> L P.
25

Complexitatea timp
1. Clasa P; timpul polinomial
2. Exemple de probleme cu timp de calcul
polinomial determinist

26

Clasa NP
1. Clasa NP
2. Exemple de probleme cu timp de calcul
polinomial nedeterminist

Clasa NP
Dac pentru unele probleme cu timp de calcul exponenial s-au
gsit mai uor sau mai greu algoritmi care ruleaz n timp
polinomial, pentru altele astfel de algoritmi nu s-au gsit nc.
Totui, cu privire la aceste probleme a fost fcut o constatare
remarcabil:
asemenea rezolvabilitii algoritmice i complexitatea unor
probleme se afl n strns relaie cu complexitatea altora
descoperirea unui algoritm polinomial pentru o astfel de
problem va permite rezolvarea n timp polinomial a unei clase
ntregi de probleme.

Clasa NP
Exemplul 1: Problema drumului hamiltonian:
const n a determina existena unui drum hamiltonian (orientat)
ntre dou noduri oarecare s i t ale unui digraf
oarecare, G.
Formalizat:
HAMILTPATH = {<G,s,t> | G este un digraf care conine un drum
hamiltonian de la s la t}

Clasa NP
n demonstraia teoremei PATH P algoritmul de cutare brut
(exponenial) a fost nlocuit cu un alt algoritm, polinomial.
Nu se cunoate nc un algoritm polinomial care s rezolve
HAMILTPATH.
Aceast problem are o caracteristic interesant:
nu este rezolvabil n timp polinomial dar
este verificabil n timp polinomial.
Dac determinm existena un drum hamiltonian de la s la t indiferent cum!
putem apoi verifica existena lui n timp polinomial,
verificnd pur i simplu c fiecare nod apare o dat i numai o
dat:
i.e. un test care se execut n timp O(m2),
unde m = numrul de noduri din G.
4

Clasa NP
Exemplul 2: Problema neprimalitii unui numr:
const n a determina daca un numar dat este compus sau nu.
Formalizat:
COMPOSITES = { x N | () p, q N, p, q > 1 astfel nct x = p.q }
nu se cunoate un algoritm polinomial care s decid asupra
acestui limbaj
dar verificarea caracterului compus al unui numr natural se poate
face n timp polinomial:
e suficient s dispunem de un divizor propriu al acelui
numr.
5

Clasa NP
Observaia 1
Exist i probleme neverificabile n timp polinomial.
De exemplu, complementul problemei drumului hamiltonian:

HAMILTPATH
S presupunem c gsim un algoritm care s determine inexistena
unui drum hamiltonian ntr-un digraf G;
singura metod prin care altcineva poate verifica inexistena unui
astfel de drum const tot n aplicarea aceluiai algoritm
exponenial care a determinat inexistena drumului.
6

Clasa NP
Definiia 1
Un verificator pentru limbajul L este un algoritm V cu proprietatea:
L = { w * | () v * astfel nct V accept <w,v> }
Msurm timpul necesar unui verificator n funcie de lungimea cuvntului w.
Un verificator polinomial ruleaz n timp polinomial in raport cu lungimea
cuvntului w.
Un limbaj L este polinomial verificabil dac admite un verificator polinomial.
Observaia 2
Cuvntul v * din definitie reprezint informaia auxiliar utilizat de
verificator pentru a verifica apartenena cuvntului w * la limbajul L.
Acest cuvnt se numete certificat sau demonstratie a apartenenei la L.

Clasa NP
Exemplul 3
HAMILTPATH:
certificatul corespunztor secvenei de intrare
<G,s,t>HAMILTPATH este nsui drumul hamiltonian de la
s la t.
COMPOSITES : certificatul corespunztor numrului natural
xCOMPOSITES este unul dintre divizorii acestuia.
n ambele cazuri, dndu-se certificatele corespunztoare,
verificatoarele pot verifica n timp polinomial apartenena la
limbajul respectiv a secvenelor de intrare.
8

Clasa NP
Teorema 1
VP NMT nedeterminista cu timp de lucru polinomial a.i.
L(V)=L(N).

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 cuvntul de intrare w *, |w| = n:
1. Selectm n mod nedeterminist un cuvnt 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 construcia de mai sus rezult imediat c N decide asupra limbajului L
n timp polinomial i este echivalent cu V.
9

Clasa NP

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 secvena 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 urmtorului nod din arborele de derivare
(alegere care trebuie fcut la fiecare pas; a se vedea
demonstraia teoremei de echivalenta dintre MT deterministe si
MT nedeterministe).
2. Dac aceast ramur de calcul a lui w din N accept atunci i
V accept intrarea <w,v>, altfel respinge.
Din construcia de mai sus rezult imediat c verificatorul V este
polinomial i echivalent cu N.
10

Clasa NP
Definiia 2
Fie t : N R+.
Se definete clasa de complexitate timp polinomial nedeterministic
prin:
NTIME(t(n)) = { L * | () o MT nedeterminist cu 1! banda care
decide asupra limbajului L n timp O(t(n)) }
Definiia 3
NP este clasa limbajelor care admit verificatoare polinomiale.
NP este clasa limbajelor decidabile n timp polinomial de ctre MT
nedeterministe cu o singur band de intrare
NP =

NTIME (n k )

kN

11

Clasa NP
Observaia 3

artm c fiecare etap a algoritmului are o implementare n


timp polinomial nedeterminist ntr-un model de calculabilitate
nedeterminist rezonabil;

artm c implementarea fiecrei ramuri de calcul necesit un


numr de etape de ordin polinomial.

12

Clasa NP
1. Clasa NP
2. Exemple de probleme cu timp de calcul
exponential

13

Clasa NP
Teorema 2
HAMILTPATH = { <G,s,t> | G este un digraf care conine un drum
hamiltonian de la s la t } NP.
demonstraie
Construim o MT nedeterminsit NH care s decid asupra limbajului
HAMILTPATH n timp polinomial.
NH = Fie secvena 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 =
numrul de noduri ale G. Fiecare numr din list este ales nedeterminist din
mulimea {1, 2, , m}.
2. Dac lista conine repetiii, atunci NH respinge.
3. Se verific dac s = p1 i t = pm; dac oricare dintre condiii nu are loc, atunci
NH respinge.
4. Pentru fiecare i : 1 i m-1, se verific dac (pi, pi+1) este un arc din G;
dac cel puin una dintre condiii nu are loc atunci NH respinge intrarea
<G,s,t>;
dac toate condiiile sunt ndeplinite atunci NH accept.
14

Clasa NP
Analizm acest algoritm din punct de vedere al complexitii timp:
etapa 1: generarea nedeterminist a numerelor p1, p2, , pm dintre
numerele 1, 2, , m
=> timp de lucru polinomial nedeterminist;
etapa 2: gsirea unei repetiii, cel puin
=> se fac teste de tipul pi=pj, unde i=1,2,,m-1 i j=i+1,,m
=> se execut cel mult m2 teste;
etapa 3: efectuarea a 2 verificri
=> un factor constant, egal cu 2;
etapa 4: verificarea fiecreia dintre cele m.(m-1) perechi de numere
generate nedeterminist (pi, pi+1) cu cele maximum m.(m-1)
arce din G
=> se execut cel mult m4 teste.
algoritmul ruleaz n timp polinomial nedeterminist.
15

Clasa NP
Teorema 3
CLIQUE = { <G,n> | G este un graf care conine o n-clic } NP.
demonstratie (1): cu verificator
Luand clica insasi ca certificat, contruim urmatorul verificator K pt CLIQUE:
K = Fie secventa de intrare <<G,n>,C>:
1. Se testeaza daca C este un set de n noduri din G.
2. Se testeaza daca G contine toate muchiile care leaga nodurile din C.
3. Daca ambele teste sunt trecute, atunci K accepta; altfel, respinge.
demonstratie (2): cu MT nedeterminista
N = Fie secventa de intrare <G,n>, unde G=(V,X) este un graf iar
n{3,,card(V)}:
1. Se alege in mod nedeterminist o submultime C de n noduri din G.
2. Se testeaza daca G contine toate muchiile care unesc intre ele cele n
noduri din submultimea CV.
3. Daca da, atunci N accepta; altfel, respinge.
16

Clasa NP
SUBSET-SUM = { <S,t> | S = {x1, x2, , xn} i () {y1, y2, , yk}
{x1, x2, , xn} astfel nct i=1k yi = t }
Exemplu: < {4,11,16,21,27} , 25 > SUBSET-SUM: 4 + 21 = 25
Teorema 4
SUBSET-SUM = { <S,t> | S = {x1, x2, , xn} i () {y1, y2, , yk}
{x1, x2, , xn} a.i. i=1k yi = t } NP.

17

Clasa NP
demonstratie (1): cu verificator
Luand subsetul insasi ca certificat, contruim urmatorul verificator S pt
SUBSET-SUM:
S = Fie secventa de intrare <<S,t>,C>:
1. Se testeaza daca C este o colectie de numere a caror suma
este egala cu t.
2. Se testeaza daca S contine toate numerele care fac parte din C.
3. Daca ambele teste sunt trecute, atunci S accepta; altfel,
respinge.
demonstratie (2): cu MT nedeterminista
N = Fie secventa de intrare <S,t>:
1. Se alege in mod nedeterminist un subset C de numere din S.
2. Se testeaza daca C este un multiset ale carui elemente
insumate sunt egale cu t.
3. Daca da, atunci N accepta; altfel, respinge.
18

Clasa NP
CLIQUE , HAMILTPATH NP ?
Definiia 4
coNP = {L* | *\L NP}
Observatia 4
? coNP NP ?

19

Clasa NP
1. Clasa NP
2. Exemple de probleme cu timp de calcul
exponential

20

NP-completitudine
1. P versus NP
2. NP-completitudine

NP-completitudine
P=NP
P NP
PNP
exist argumente att n favoarea tezei
P NP ct i n favoarea tezei P = NP .

NP-completitudine
P NP nu exist un algoritm rapid care s inlocuiasc cutarea direct.
Cea mai bun metod cunoscut n prezent pentru a rezolva probleme din
clasa NP n mod determinist necesit timp de lucru exponenial
NP EXPTIME =

TIME (2 n )

putem demonstra c:
kN
Terminologie
NP = clasa problemelor rezolvabile algoritmic n timp polinomial
nedeterminist
= clasa problemelor rezolvabile algoritmic n timp exponenial
determinist.

NP-completitudine
Teorema 1
P NP coNP
Observatia 1
P NP coNP.
EXP

NP

coNP
P

NP-complete

Observatia 2
P EXPTIME.

coNP-complete

NP-completitudine
1. P versus NP
2. NP-completitudine

NP-completitudine
1970: Stephen COOK i Leonid LEVIN:
Probleme din clasa NP a cror complexitate proprie este
strns legat de complexitatea ntregii clase.
Aceste probleme se numesc NP-complete.

NP-completitudine
Fenomenul NP-completitudinii este
important din punct de vedere:
teoretic:
practic:
Cercetatorii considera c P NP
demonstrarea faptului c o problem
este NP-complet este o dovad
puternic a caracterului ei nepolinomial.
7

NP-completitudine
Exemplul 1: Problema evaluarii = satisfiabilitatii (Satisfiability Problem)
Definiia 1
O formul boolean se numete satisfezabila=evaluabil
exist o combinaie de valori de adevr care, date variabilelor booleene
din formul, evalueaz formula la valoarea 1.
Problema evalurii (satisfiabilitii) const n a verifica dac o formul
booleean oarecare este evaluabil (satisfezabil) i se codific prin:
SAT = { < > | este o formul booleean evaluabil }

NP-completitudine
Teorema 2 (Cook-Levin)
SAT P P = NP
demonstraie
Metoda folosit: reductibilitatea polinomial a timpului de lucru.

NP-completitudine
Definiia 2
Funcia f: * * se numete polinomial calculabila
exist o MT cu timp de lucru polinomial: w*, se oprete,
avnd pe band secvena f(w).
Definiia 3
Fie limbajele A, B *.
Limbajul A se numete polinomial reductibil la limbajul B
f : ** polinomial calculabil astfel nct w*:
wA f(w) B.
Funcia f se numete reducerea polinomial a lui A la B.
Notatia 1
A P B

10

NP-completitudine
Teorema 3
Fie limbajele A, B *.
Daca A P B si BP => A P .
demonstratie
Cf. ip.: M = algoritm cu timp de lucru polinomial care decide B
Cf. ip.: f = reducere polinomiala a lui A la B
Construim urmatorul algoritm N care decide limbajul A:
N = Fie secventa de intrare w*:
1. Se calculeaza f(w).
2. Se ruleaza M pe intrarea f(w); N returneaza exact ceea ce returneaza M.
(*)
Cf. ip. A P B: wA f(w)B => M accepta f(w) wA.
N ruleaza in timp polinomial pt ca:
(**)
etapa 1: reducerea f este polinomiala => timp polinomial
etapa 2: avem o compunere de 2 polinoame => timp polinomial
Cf. (*) si (**): A P .
11

NP-completitudine
Definitia 4
Fie limbajele A, B *.
Limbajul B se numete NP-complet
1. BNP;
2. ANP: A P B.
Teorema 4
Fie limbajele A, B *.
Daca B este NP-complet si BP => P=NP.
demonstratie
Rezulta imediat din definitia reductibilitatii polinomiale

12

NP-completitudine
Teorema 5
Fie limbajele B, C *.
Daca B este NPcomplet si
CNP: B P C
=> C este NPcomplet.
demonstratie
Cf. ip.: B este NP-complet ANP: A P B (cf. Def.4),
Cf. ip.: CNP: B P C,
compunerea a 2 polinoame este tot un polinom

A P C
=> C este NP-complet (cf. Def. 4).

13

NP-completitudine

14

NP-completitudine
1. P versus NP
2. NP-completitudine

15

Clasa S
1.
2.
3.
4.

Definitii
Teorema lui Savitch
Clasele PSPACE si NPSPACE
PSPACE-completitudine

Clasa S
Definitie 1
Fie M o MT determinista cu 1! banda, decidenta,
w* un cuvant de intrare,
C=C0C1C2CdCf un calcul oarecare efectuat de M pe intrarea w;
Complexitatea spatiu a M pe intrarea w este numarul intreg notat
SPACEM(w) = min {SPACEM(C) | C este un calcul efectuat de M pe
intrarea w}
= numarul minim de locaii de pe banda de intrare scanate de M pe
intrarea w.

Clasa S
Definitie 2
Fie M o MT determinista cu 1! banda decidenta.
Complexitatea spatiu (determinist) a masinii Turing M este o functie
f : N N, definita prin:
f(n) = numrul maxim de locaii de pe banda de intrare
scanate de M pentru orice secvena de intrare de lungime n,
nN .
Mai spunem c M ruleaz ntr-un spaiu de memorie egal cu f(n).
Notatia 1
f(n) = max {SPACEM(w) | wL(M)n} = SPACEM(n)

Clasa S
Definitie 3
Fie N o MT nedeterminista cu 1! banda, decidenta,
wL(M)*;
Complexitatea spatiu a N pe intrarea w este numarul intreg notat
NSPACEN(w) care reprezinta cel mai mic numar de locatii de pe
banda de intrare scanat de N, dintre toate ramurile de calcul care
accepta w.
Definitie 4
Fie N o MT nedeterminista cu 1! banda, decidenta,
Complexitatea spatiu (nedeterminist) a N este o functie
f : N N, definita prin:
f(n) = numrul maxim de locatii de pe banda de intrare necesar lui N
pentru prelucrarea unui cuvant wL(N)n, nN .
Notatia 2
f(n) = max {NSPACEN(w) | wL(N) n} = NSPACEN(n)
4

Clasa S
Definiia 5
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 spaiu O(f(n)) }
NSPACE(f(n)) = { L * | () o MT nedeterminist care decide
asupra limbajului L ntr-un spaiu O(f(n)) }

Clasa S

Exemplul 1
Urmatorul algoritm rezolva SAT cu spaiu linear.
M1 = Fie secvena de intrare < >, = formul booleean:
1. Pentru fiecare combinaie de valori de adevr atribuite
variabilelor booleene x1, x2, , xm din se executa Pasul 2:
2. Se evalueaz valoarea de adevr a formulei .
3. Dac se evalueaz la 1, atunci M1 accept; altfel, respinge.

Clasa S

Evaluam complexitatea spatiu a M1:


la fiecare iteraie a etapei a 2-a, M1 trebuie s memoreze numai
combinaia curent de valori de adevr ale variabilelor
x1, x2, , xm
=> M1 utilizeaz aceeai poriune a benzii de intrare
spaiul necesar este de ordinul O(m).
Cum numrul de variabile m este mriginit superior de
lungimea secvenei de intrare
M1 ruleaz n spaiu de ordinul O(n).

Clasa S
Exemplul 2
Fie AAFN. Vrem s verificm dac el
accept toate secvenele din *.
Codificm aceast problem prin
urmtorul limbaj
ALLAFN = { <A> | AAFN i L(A) = * }
8

Clasa S
soluie
N = Fie secvena de intrare <A>, unde A este un AFN:
1. Se marcheaz starea iniial a lui A.
2. Se repet Pasul 3 de 2q ori, unde q = |Q|.
3. Se selecteaz nedeterminist un simbol de intrare i se
modifica pozitia marcajelor de pe starile lui A pentru a
simula citirea acelui simbol.
4. Dac la pasii 2 i 3 apare o secven pe care A o respinge
(adic dac la un moment dat nici unul dintre marcaje nu
se afla pe o stare de acceptare a lui A) atunci N accept
secvena de intrare <A>; altfel o respinge.

Clasa S
demonstram ca N decide ALL AFN
Dac exist secvene din * pe care A le respinge
printre ele trebuie s se afle una de lungime cel mult 2q ,
deoarece n cazul tuturor secvenelor de lungime mai mare,
respinse de A, poziiile markerilor descrii n algoritmul de mai
sus ar trebui s se repete (A are prin ipotez doar q stri).
Poriunea din secven cuprins ntre repetiii poate fi eliminat
pentru a se obine astfel o secven respins, mai scurt.
=> N decide asupra limbajului.
calculam complexitatea spatiu a lui N
Algoritmul necesit spaiu de memorie suplimentar numai pentru
stocarea locaiilor markerilor i a contorului de ciclare
=> algoritmul necesit spaiu linear
=> algoritmul ruleaz n spaiu nedeterminist de ordinul O(n). 10

Clasa S
1.
2.
3.
4.

Definitii
Teorema lui Savitch
Clasele PSPACE si NPSPACE
PSPACE-completitudine

11

Clasa S

Unul dintre primele rezultate privind complexitatea spaiu:


MT deterministe (MTD) pot simula MT nedeterministe (MTN)
utiliznd o cantitate de memorie surprinztor de mic.
O astfel de simulare pare s implice:

din punct de vedere al complexitii timp:


o crestere exponentiala: de la f(n) la 2f(n),

din punct de vedere al complexitii spaiu:


o creterea polinomiala: de la f(n) la f2(n).
Teorema lui SAVITCH
Fie o funcie f: N R+ cu proprietatea: f(n) n
NSPACE (f(n)) SPACE (f2(n))
12

Clasa S

demonstratie
vom rezolva o problem mai general, PROBLEMA TRANZITIEI:
fie dou configuraii c1 = uaqrbv i c2 = zcqsdw (a,b,c,d,
u,v,z,w*, qr,qsQ) ale unei MTN i un numr tN;
trebuie s verificm dac MTN poate trece din configuraia c1 n
configuraia c2 n t pai.
Rezolvnd PROBLEMA TRANZITIEI pentru
c1 = configuraia de start a MTN;
c2 = configuraia de acceptare a MTN;
t = numrul maxim de pai pe care i poate face MTN.
putem verifica dac MTN accept secvena de intrare primit.
13

Clasa S

se caut o configuraie intermediar cm,


se verific recursiv dac

c1 trece n cm n t/2 pai,


cm trece n c2 n t/2 pai.

Acest algoritm are nevoie de spaiu pentru a memora informaia


din stiva recursiv.

14

Clasa S

Fiecare nivel al recurenei utilizeaz pentru memorarea unei


configuraii un numr de locaii de memorie de ordinul
O(f(n)).
Adncimea recurenei 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(f(n)) . O(f(n)) = O(f2(n))
locaii de memorie.`
inaltimea stivei spatiul pt memorarea unei config.

15

Clasa S

(i) Definim procedura TRANZ


Fie: w secvena de intrare primit de N,
t N (pentru simplificare, putem presupune c t este o
putere a lui 2),
c1, c2 dou configuraii oarecare ale N;
atunci, TRANZ(c1, c2, t) accept dac N poate trece din
configuraia c1 n configuraia c2 printr-un calcul
nedeterminist cu maximum t pai; altfel respinge.

16

Clasa S
TRANZ = Fie datele de intrare c1, c2 i t, ca mai sus:
1. Dac t = 1 atunci se verific direct dac c1 = c2 sau dac c1 trece
n c2 ntr-un singur pas conform funciei de tranziie a lui N.
Dac oricare dintre cele dou condiii este ndeplinit atunci TRANZ
accept; dac nici una dintre condiii nu e ndeplinit atunci TRANZ
respinge.
2. Dac t > 1 atunci urmtoarele instruciuni se execut pentru fiecare
configuraie cm a lui N pe intrarea w i cu spaiu de lucru f(n):
3. Se ruleaz TRANZ(c1, cm, t/2).
4. Se ruleaz TRANZ(cm, c2, t/2).
5. Dac paii 3 i 4 se ncheie ambii cu acceptare, atunci TRANZ
accept.
6. Dac cel puin o dat cele 2 condiii nu se ndeplinesc, atunci TRANZ
respinge.
17

Clasa S

(ii) Definim o MTD M care simuleaz N astfel:


modificm N astfel nct atunci cnd N accept, N i golete
banda de intrare i i deplaseaz cursorul n celula cea mai din
stnga, intrnd astfel ntr-o configuraie numit caccept;
notm cu cstart configuraia de start a lui N pe intrarea w ;
alegem o constant d N astfel nct, pe intrarea w, unde
|w|=n, N s treac prin maxim 2df(n) configuraii i s utilizeze f(n)
celule de pe banda de intrare.
=> ne asigurm c 2df(n) este o limit superioar pentru timpul de
lucru al oricrei ramuri de calcul a lui N pe intrarea w.
M = Fie cuvntul de intrare w:
1. Returneaz rezultatul produs de TRANZ(cstart, caccept, 2df(n)).
18

Clasa S

(iii) corectitudinea lui M


algoritmul TRANZ rezolv PROBLEMA TRANZITIEI
M simuleaz corect N.
Mai trebuie s demonstrm c M lucreaz cu spaiu O(f2(n)).
(iv) complexitatea lui M (aratam ca M lucreaz n spaiu O(f2(n)))
Procedura TRANZ se apeleaz pe ea nsi recursiv
la fiecare apel, ea memoreaz n stiv
numrul de ordine al pasului de calcul curent,
valorile lui c1,c2,t pt a le invoca la revenirea din apelul recursiv.
=> fiecare nivel de recuren utilizeaz un spaiu de lucru
suplimentar de ordinul O(f(n)).
19

Clasa S

n plus, la fiecare apel recursiv valoarea constantei t=nr. pai = nr.


config. necesare pentru calcularea w, se injumtete (cf.
procedurii).
Iniial, t = 2df(n)
adncimea stivei (nr de apeluri recursive necesare) este
O(log2t)=O(log22df(n))=O(d.f(n))=O(f(n))
spaiul de memorie total este O(f(n)).O(f(n))=O(f2(n)).

20

Clasa S

(v) rezolvarea unei dificultati tehnice:


la fiecare apel recursiv al procedurii TRANZ, algoritmul M trebuie
s cunoasc valoarea lui f(n).
Soluia: modificam M astfel nct M s ncerce pe rnd 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 N poate ajunge in final in
configuratia caccept, testand daca N ajunge in vreuna dintre
configuratiile de lungime i+1.
21

Clasa S

De asemenea, M utilizeaz procedura TRANZ pentru a verifica


dac N folosete cel puin i+1 locaii, astfel:
fie f(n) = i; algoritmul M modificat utilizeaz procedura TRANZ
pentru a verifica dac N poate ajunge din configuraia de
start n una dintre configuraiile de lungime i+1 astfel:
dac nici una dintre configuraiile de lungime i+1 nu este atins
atunci M respinge;
dac este atins una dintre configuraiile de lungime i+1 i
aceasta este o configuraie de acceptare atunci M accept;
dac este atins una dintre configuraiile de lungime i+1 i
aceasta nu este o configuraie de acceptare atunci M
continu cu f(n) = i+1.
22

Clasa S

(vi) algoritmul M modificat:


M = Fie secventa d eintrare w*:
1. Fie i=1.
2. Fie f(n)=i.
3. Fie c prima configuratie de lungime i+1 a lui N:
4. Se ruleaza TRANZ(cstart, c,2d.i).
Daca TRANZ respinge si daca mai exista cel putin o
configuratie de lungime i+1 netestata, atunci se reia Pasul 4.
Daca TRANZ respinge si daca nu mai exista nicio
configuratie de lungime i+1 netestata, atunci M respinge.
5. Daca TRANZ accepta si daca ci+1=caccept atunci M accepta.
Daca TRANZ accepta si daca ci+1caccept atunci ii+1 si se
reia Pasul 2.
23

Clasa S
1.
2.
3.
4.

Definitii
Teorema lui Savitch
Clasele PSPACE si NPSPACE
PSPACE-completitudine

24

Clasa S

Definiia 1
Notm cu PSPACE clasa limbajelor decidabile n spaiu
polinomial de ctre MT deterministe cu o singur
band de intrare:
PSPACE =

SPACE (n k )

k N

Notm cu NPSPACE clasa limbajelor decidabile n


spaiu polinomial de ctre MT nedeterministe cu o
singur band de intrare:
k
NPSPACE =

NSPACE (n

k N

25

Clasa S
Observaia 1
PSPACE = NPSPACE
(cf. Teoremei lui Savitch)
Exemplul 3
Cf. Ex.1: SAT SPACE(n);
Cf. Ex.2: ALL AFN NSPACE (n)
clasele de complexitate spaiu determinist sunt nchise la
complementar => ALLAFN coNSPACE(n).
cf. Teorema Savitch => ALLAFNSPACE(n2)
=> SAT, ALLAFNPSPACE.
26

Clasa S
Conjectura privind relaia dintre clasele de complexitate
timp i spaiu

(i) P PSPACE
Fie funcia 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 dect cel mult o celul.
(ii) NP PSPACE
Cu un raionament analog rezult c NP NPSPACE.
Cf. Observaiei 1: PSPACE = NPSPACE => NP PSPACE.

27

Clasa S
(iii) Reciproc, putem gsi o majorare pentru complexitatea timp a
unei MT n funcie de complexitatea spaiu.
Cf. def. ant.: o configuratie a unui automat: Ci=uaqibv
Cf. lema ant: un automat linear mrginit (ALM) cu r stri, care
citete un cuvnt de lungime n de pe banda de intrare i care
dispune de un alfabet de intrare cu s elemente poate avea
cel mult r.n.sn configuraii distincte.
=> o MTPSPACE (adica o MT care utilizeaz f(n) locaii de
memorie, unde f : N N, f(n) n), poate avea cel mult
f(n).2O(f(n)) configuraii distincte.
Am pp ca MT se oprete indiferent de secvena de intrare primit
MT nu cicleaza
=> pe parcursul oricarui calcul, nicio configuratie nu se repeta

28

Clasa S
o MT care utilizeaz f(n) locaii de memorie trebuie s execute
f(n).2O(f(n)) pai de calcul, deci:
=> MTPSPACE ruleaza in timp cel mult f(n).2O(f(n))
=> MT EXPTIME =>
k
n
PSPACE EXPTIME =
TIME (2 )
k N

Din (i), (ii) i (iii) rezult c:


P NP NPSPACE = PSPACE EXPTIME
29

NP

PSPACE=
NPSPACE

EXPTIME

Clasa S
Observaia 2
Nu se tie nc dac vreuna dintre incluziuni nu este de fapt chiar o
egalitate.
S-ar putea descoperi oricnd o simulare asemntoare celei din
demonstraia Teoremei lui Savitch care s permit fuzionarea
unora dintre aceste clase ntr-o singur clas.
Pe de alt parte, se demonstreaz c P EXPTIME
cel puin una dintre incluziunile de mai sus este strict dar nu se
tie care!!
n fapt, cei mai muli cercettori cred c toate incluziunile sunt
stricte, adic accept diagrama de mai sus ca descriind cel
mai corect relaia dintre clasele de complexitate timp i spaiu:
30

Clasa S
1.
2.
3.
4.

Definitii
Teorema lui Savitch
Clasele PSPACE si NPSPACE
PSPACE-completitudine

31

Clasa S
Definitia 2
Un limbaj B este PSPACE-complet
(1) B PSPACE
(2) () A PSPACE A P B (A este polinomial reductibil la B)
Dac limbajul B satisface numai condiia (2) atunci spunem c el
este PSPACE-dificil (PSPACE-hard).

32

Clasa S
Observaia 3
PSPACE-completitudinea utilizeaza tot notiunea
de reductibilitate in timp polinomial. Motivul:
Regula este: oridecteori definim probleme
complete pentru o anumit clas de
complexitate, modelul in raport cu care
definim reducerea trebuie s fie mai limitat
(ca si complexitate) dect modelul folosit
pentru definirea clasei de complexitate
nsi.
33

Clasa S
Exemple de probleme PSPACE-complete
Problema 1: TBQF
Definiia 3
Formul booleean complet cuantificat =
o formul booleean n care fiecare variabil este cuantificat.
Exemplul 4
= x y [(x y) (x y)]
Definiia 4
Problema TQBF const n determinarea valorii de adevr a unei
formule booleene complet cuantificate oarecare i este
formalizat prin limbajul:
TQBF = {<> | este o formul booleean complet cuantificata }
34

Clasa S
Teorema 2
TQBF este o problem PSPACE-complet.
ideea demonstraiei
1. Pentru a demonstra c TQBF PSPACE construim un algoritm
care asigneaz valori de adevr variabilelor din formul i apoi
evalueaz recursiv valoarea de adevr a acesteia.
Pe baza acestei informaii, algoritmul poate determina dac
formula dat este sau nu adevrat.
2. Pentru a arta c toate limbajele L din PSPACE se reduc
polinomial la TQBF:
(i) construim pentru L o MT, M, cu spaiu de lucru polinomial,
(ii) construim o reducere polinomial care asociaz o secvena unei
formule booleeane complet cuantificate care codific o
simulare a MT, M, pe acea intrare;
(iii) formula este adevrat M accept.
35

Clasa S

Problema 2: Strategii de castig pentru jocuri


Fie o formul booleean complet cuantificat
= x1 x2 x3 xk [];
considerm un joc la care particip doi juctori, E i U , care
asigneaz pe rnd valori de adevr variabilelor x1, x2, x3, ,xk
(in ordinea data de ordinea in care apar cuantificatorii) astfel:
E asigneaz valori numai variabilelor cuantificate existenial;
U asigneaz valori numai variabilelor cuantificate universal.
Dac prin aceast asignare formula (partea lui care nu contine
cuantificatori) se evalueaz la TRUE, atunci ctig juctorul E;
altfel ctig juctorul U .
36

Clasa S

Spunem c juctorul E are o strategie ctigtoare pentru formula


dac indiferent de asignrile fcute de juctorul U
juctorul E poate asigna valori de adevr varibilelor (legate prin
cuantificatori existeniali) n aa fel ncat s ctige.
Este evident c juctorul E are o startegie ctigtoare pentru
dac i numai dac se evalueaz la valoarea 1. Avem astfel:
Teorema 3
Limbajul Formula-joc = {< > | juctorul E are o strategie
ctigtoare pentru formula-joc asociat formulei booleene
complet cuantificate } este PSPACE-complet
37

Clasa S

Problema 3: Jocul geografic


Jocul geografic sau Antakhshari, se refera la numele oraelor.
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 juctori se deplaseaz
alternativ n digraf, de-a lungul arcelor, n noduri nevizitate nc.
Juctorul care nu reuete 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 oraele sau literele) i un nod predeterminat.
Problema const n a determina dac primul juctor are o strategie
ctigtoare. Avem astfel:
38

Clasa S
Teorema 4
Limbajul Joc-geografic = {<G,s> | primul juctor are o strategie
ctigtoare pentru jocul Antakhshari generalizat n digraful
G, dac jocul ncepe din nodul s }
este PSPACE-complet.
ideea demonstraiei
Pentru a demonstra teorema ar trebui s gsim o reducere n timp
polinomial a problemei Formula-joc la problema Joc-geografic.
Intruct se crede c P PSPACE este de presupus c nu exist
nici un algoritm cu timp de lucru polinomial care s-i permit
primului juctor s verifice existena unei strategii
ctigtoare, cu att mai puin s o determine.
39

Clasa S
1.
2.
3.
4.

Definitii
Teorema lui Savitch
Clasele PSPACE si NPSPACE
PSPACE-completitudine

40

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