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