Sunteți pe pagina 1din 18

Automate Finite

Nedeterministe (AFN)
Curs 6
Observatii generale
• Toti algoritmii si toate operatiile pe automate se aplica numai pe
AFD.

• Nedeterminismul se refera la faptul ca un acelasi sir de intrare


(cuvant) w poate conduce in stari diferite – eventual chiar la
comportamente diferite (poate fi acceptat/ ne-acceptat)
• In raport cu evenimentul nul al operatiei de concatenare – ε – AFN
pot fi cu sau fara tranzitii ε.
AFN (implicit, fara tranzitii ε)
• Definitie:
Un automat finit nedeterminist AFN se defineste ca un quintuplu
G = (Q, Σ, δ, q0, Qm)
unde δ : Q × Σ → 2Q (adica multimea submultimilor lui Q).
•Restul elementelor au aceeasi semnificatie ca in cazul AFD. δ(q,ε) = q
•Diferenta inseamna ca exista cel putin o pereche (q, e) pentru care evolutia
δ(q, e) NU este unica. (de exemplu, δ(qi, e) = {qi, qj, qt})
•Prin definitie, un cuvant de intrare w este acceptat daca exista macar
o evolutie δ(q0, w) care sa duca intr-o stare marcata.
Mod de functionare AFN - exemplu

Evolutii posibile pentru cuvantul de intrare 0111


AFN
• AFN pot reprezenta solutii de proiectare mai simple
AFN care accepta sirurile care se termina in 101

AFN care accepta a* + (ab)*


AFN
• Pot rezulta (si) prin identificarea unor procese in care starile sunt definite
folosind si variabile inutile/ irelevante pentru problema
• Important !
• Teorema: Pentru orice AFN se poate construi un AFD echivalent (in raport
cu modelul limbaj), numit observator.
• Idee: observatorul se construieste, pornind de la starea initiala, sub prezumtia
ca multimea starilor care rezulta pentru fiecare pereche (stare, eveniment) are
un singur element
• Daca AFN are n stari, observatorul sau poate avea maxim 2 n stari
• O stare a observatorului este marcata daca include macar o stare marcata a
AFN initial
Constructie observator
0 1
A A (A, B) = X1
X1=(A, B) (A, C)=X2 (A, B)=X1
X2=(A, C) A (A, B, D) = X3
X3=(A,B, D) (A, C)=X2 (A, B) = X1

Cu multimea starilor marcate Qm={X3}

Obligatoriu de specificat! (Altfel NU vor fi echivalente)


Rezolvam impreuna problema 35
Mai mult nedeterminism: AFN cu tranzitii ε
• AFN cu tranzitii ε reprezinta:
• Fie rezultatul identificarii de procese pentru care nu exista posibilitatea
observarii tuturor evenimentelor (astfel incat apar tranzitii de stare fara
motive evidente – tranzitia ε reprezentand evenimentul nul)
• Fie rezultatul proiectarii – metoda algoritmica de constructie a automatului
care accepta o expresie regulata data (metoda nu ofera o posibilitate de
control a limbajului generat)
• Tranzitia ɛ apare in situatiile in care au loc schimbari de stare pentru care nu
se detecteaza/ masoara aparitia unui eveniment.
AFN cu tranzitii ε: inchiderea ɛ a unei stari
AFN cu tranzitii ε: inchiderea ɛ a unei stari
Un automat finit nedeterminist AFN cu tranzitii ε se defineste ca un
quintuplu
G = (Q, Σ ᴗ{ε }, δ, q0, Qm)
unde δ : Q × (Σ ᴗ{ε }) → 2Q (adica multimea submultimilor lui Q), cu
urmatoarele observatii:
Inchiderea epsilon a unei stari q este formata
din multimea tuturor starilor in care se poate
ajunge din q printr-un sir (oricat de lung) de
evenimente epsilon.
Algoritmul general de constructie a
observatorului oricarui tip de AFN
Algoritmul general de constructie a
observatorului oricarui tip de AFN
Algoritmul general de constructie a
observatorului oricarui tip de AFN
Algoritmul general de constructie a
observatorului oricarui tip de AFN
• Problema 40 – rezolvam impreuna
• Observatii:
• starea initiala a observatorului este inchiderea epsilon a starii
initiale a AFN ! (deci daca nu e AFN-epsilon, ramane aceeasi, daca
este AFN cu transzitii epsilon, este deja o multime de stari)
• Pentru AFN cu tranzitii epsilon este extrem de necesar sa se
parcurga cele doua etape, in mod distinct!
Problema 40

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