CAPITOLUL II. MAŞINI CU STĂRI FINITE

Σχετικά έγγραφα
Metode iterative pentru probleme neliniare - contractii

Curs 10 Funcţii reale de mai multe variabile reale. Limite şi continuitate.

(a) se numeşte derivata parţială a funcţiei f în raport cu variabila x i în punctul a.

Curs 4 Serii de numere reale

Curs 14 Funcţii implicite. Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi"

V.7. Condiţii necesare de optimalitate cazul funcţiilor diferenţiabile

III. Serii absolut convergente. Serii semiconvergente. ii) semiconvergentă dacă este convergentă iar seria modulelor divergentă.

DISTANŢA DINTRE DOUĂ DREPTE NECOPLANARE

Curs 1 Şiruri de numere reale

CAPITOLUL 4 AUTOMATE PUSH-DOWN 4.1. DEFINIREA UNUI AUTOMAT PUSH-DOWN

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor X) functia f 1

a n (ζ z 0 ) n. n=1 se numeste partea principala iar seria a n (z z 0 ) n se numeste partea

Planul determinat de normală şi un punct Ecuaţia generală Plane paralele Unghi diedru Planul determinat de 3 puncte necoliniare

Curs 2 Şiruri de numere reale

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor

5. FUNCŢII IMPLICITE. EXTREME CONDIŢIONATE.

Criptosisteme cu cheie publică III

Capitolul 4 PROPRIETĂŢI TOPOLOGICE ŞI DE NUMĂRARE ALE LUI R. 4.1 Proprietăţi topologice ale lui R Puncte de acumulare

Asupra unei inegalităţi date la barajul OBMJ 2006

SERII NUMERICE. Definiţia 3.1. Fie (a n ) n n0 (n 0 IN) un şir de numere reale şi (s n ) n n0

Integrala nedefinită (primitive)

Sisteme diferenţiale liniare de ordinul 1

Metode de interpolare bazate pe diferenţe divizate

Cursul Măsuri reale. D.Rusu, Teoria măsurii şi integrala Lebesgue 15

Orice izometrie f : (X, d 1 ) (Y, d 2 ) este un homeomorfism. (Y = f(x)).

Definiţia generală Cazul 1. Elipsa şi hiperbola Cercul Cazul 2. Parabola Reprezentari parametrice ale conicelor Tangente la conice

Seminariile Capitolul X. Integrale Curbilinii: Serii Laurent şi Teorema Reziduurilor

riptografie şi Securitate

Lucrare. Varianta aprilie I 1 Definiţi noţiunile de număr prim şi număr ireductibil. Soluţie. Vezi Curs 6 Definiţiile 1 şi 2. sau p b.

1.3 Baza a unui spaţiu vectorial. Dimensiune

Analiza în curent continuu a schemelor electronice Eugenie Posdărăscu - DCE SEM 1 electronica.geniu.ro

Lectia VI Structura de spatiu an E 3. Dreapta si planul ca subspatii ane

CURS 11: ALGEBRĂ Spaţii liniare euclidiene. Produs scalar real. Spaţiu euclidian. Produs scalar complex. Spaţiu unitar. Noţiunea de normă.

SEMINAR 14. Funcţii de mai multe variabile (continuare) ( = 1 z(x,y) x = 0. x = f. x + f. y = f. = x. = 1 y. y = x ( y = = 0

Subiecte Clasa a VIII-a

MARCAREA REZISTOARELOR

Esalonul Redus pe Linii (ERL). Subspatii.

Capitolul 4. Integrale improprii Integrale cu limite de integrare infinite

COLEGIUL NATIONAL CONSTANTIN CARABELLA TARGOVISTE. CONCURSUL JUDETEAN DE MATEMATICA CEZAR IVANESCU Editia a VI-a 26 februarie 2005.

R R, f ( x) = x 7x+ 6. Determinați distanța dintre punctele de. B=, unde x și y sunt numere reale.

Criterii de comutativitate a grupurilor

Laborator 11. Mulţimi Julia. Temă

Principiul Inductiei Matematice.

5.4. MULTIPLEXOARE A 0 A 1 A 2

Examen AG. Student:... Grupa:... ianuarie 2011

Cum folosim cazuri particulare în rezolvarea unor probleme

Seminar 5 Analiza stabilității sistemelor liniare

Aplicaţii ale principiului I al termodinamicii la gazul ideal

a. 11 % b. 12 % c. 13 % d. 14 %


Subiecte Clasa a VII-a

Funcţii Ciudate. Beniamin Bogoşel

f(x) = l 0. Atunci f are local semnul lui l, adică, U 0 V(x 0 ) astfel încât sgnf(x) = sgnl, x U 0 D\{x 0 }. < f(x) < l +

2 Transformări liniare între spaţii finit dimensionale

Platformă de e learning și curriculă e content pentru învățământul superior tehnic

Spatii liniare. Exemple Subspaţiu liniar Acoperire (înfăşurătoare) liniară. Mulţime infinită liniar independentă

Rădăcini primitive modulo n

2. Circuite logice 2.4. Decodoare. Multiplexoare. Copyright Paul GASNER

Problema a II - a (10 puncte) Diferite circuite electrice

O generalizare a unei probleme de algebră dată la Olimpiada de Matematică, faza judeţeană, 2013

Functii Breviar teoretic 8 ianuarie ianuarie 2011

z a + c 0 + c 1 (z a)

BARAJ DE JUNIORI,,Euclid Cipru, 28 mai 2012 (barajul 3)

EDITURA PARALELA 45 MATEMATICĂ DE EXCELENŢĂ. Clasa a X-a Ediţia a II-a, revizuită. pentru concursuri, olimpiade şi centre de excelenţă

1.7. AMPLIFICATOARE DE PUTERE ÎN CLASA A ŞI AB

5.5. REZOLVAREA CIRCUITELOR CU TRANZISTOARE BIPOLARE

SEMINARUL 3. Cap. II Serii de numere reale. asociat seriei. (3n 5)(3n 2) + 1. (3n 2)(3n+1) (3n 2) (3n + 1) = a

III. Reprezentarea informaţiei în sistemele de calcul

Concurs MATE-INFO UBB, 1 aprilie 2017 Proba scrisă la MATEMATICĂ

Conice - Câteva proprietǎţi elementare

CONCURS DE ADMITERE, 17 iulie 2017 Proba scrisă la MATEMATICĂ

Definiţia 1.1 Fiind date mulţimile A (alfabetul sursă) şi B (alfabetul cod), o codificare

CURS VII-IX. Capitolul IV: Funcţii derivabile. Derivate şi diferenţiale. 1 Derivata unei funcţii. Interpretarea geometrică.

Al cincilea baraj de selecţie pentru OBMJ Bucureşti, 28 mai 2015

Vectori liberi Produs scalar Produs vectorial Produsul mixt. 1 Vectori liberi. 2 Produs scalar. 3 Produs vectorial. 4 Produsul mixt.

Conice. Lect. dr. Constantin-Cosmin Todea. U.T. Cluj-Napoca

2.1 Sfera. (EGS) ecuaţie care poartă denumirea de ecuaţia generală asferei. (EGS) reprezintă osferă cu centrul în punctul. 2 + p 2

Fig Impedanţa condensatoarelor electrolitice SMD cu Al cu electrolit semiuscat în funcţie de frecvenţă [36].

Examen AG. Student:... Grupa: ianuarie 2016

Subiecte Clasa a V-a

Seminar Algebra. det(a λi 3 ) = 0

Asist. Dr. Oana Captarencu. otto/pn.html.

VII.2. PROBLEME REZOLVATE

Ecuatii exponentiale. Ecuatia ce contine variabila necunoscuta la exponentul puterii se numeste ecuatie exponentiala. a x = b, (1)

Ovidiu Gabriel Avădănei, Florin Mihai Tufescu,

Principiul incluziunii si excluziunii. Generarea şi ordonarea permutărilor. Principiul porumbeilor. Pri

Laborator 1: INTRODUCERE ÎN ALGORITMI. Întocmit de: Claudia Pârloagă. Îndrumător: Asist. Drd. Gabriel Danciu

6 n=1. cos 2n. 6 n=1. n=1. este CONV (fiind seria armonică pentru α = 6 > 1), rezultă

Curs 4. I.4 Grafuri. Grafuri orientate

Limbaje formale Mircea Dr agan S tefan M aru ster February 23, 2005

Matrice. Determinanti. Sisteme liniare

Capitolul 2. Integrala stochastică

riptografie şi Securitate

* K. toate K. circuitului. portile. Considerând această sumă pentru toate rezistoarele 2. = sl I K I K. toate rez. Pentru o bobină: U * toate I K K 1

2. Circuite logice 2.2. Diagrame Karnaugh. Copyright Paul GASNER 1

Să se arate că n este număr par. Dan Nedeianu

CURS XI XII SINTEZĂ. 1 Algebra vectorială a vectorilor liberi

1 Corpuri finite. 1.1 Introducere. Reamintim mai intai

prin egalizarea histogramei

Geometrie computationala 2. Preliminarii geometrice

Transcript:

CAPITOLUL II. MAŞINI CU STĂRI FINITE În acest capitol introducem conceptul de maşină cu stări finite, numită şi automat finit. Aceste dispozitive matematice îşi au originea în modelarea comportamentului circuitelor electronice secvenţiale; utilizarea şi aplicarea lor este mult mai largă. Ele pot fi văzute ca cel mai simplu model de algoritm sau a unui analizator de limbaj sau chiar a unui calculator. Dispozitive mai sofisticate cum sunt automatele pushdown, sau maşinile Turing, pot fi văzute ca maşini cu stări finite cu numeroase clopoţei şi zurgălăi ataşate lor. Teoria automatelor finite este destul de simplă pentru a motiva o pătrunde mai adâncă în studiul acestor modele avansate... DEFINIŢII Considerăm conceptul matematic de maşină cu stări finite (MSF), sau automat finit (AF). Mai întâi acordăm atenţie maşinilor cu stări finite deterministe (MSFD). Aceste maşini se compun dintr-un număr finit de stări şi un dispozitiv de intrare, care citeşte simboluri, unul câte unul (de la stânga la dreapta), dintr-un şir de caractere de intrare. Dacă maşina se află într-o stare Q şi simbolul de intrare este x, ea îşi schimbă starea (sau se mişcă) în starea δ ( Qx, ). Apoi citeşte următorul simbol de intrare din dreapta iar procesul se repetă. Maşina se iniţializează într-o stare iniţială Q, iar primul simbol din şirul citit este cel mai din stânga simbol a acestui şir. Regula δ ( Qx, ) care descrie următoarea stare se numeşte funcţie de tranziţie. Ea depinde doar de starea curentă Q şi de simbolul curent x, deci este complet independentă de mişcările şi intrările

anterioare. Maşina se opreşte după ce a citit toate simbolurile şirului de intrare. Unele variante ale conceptului de maşină admit ca funcţia δ ( Qx, ) să nu fie definită pentru unele stări Q sau simboluri x. În acest caz, maşina se va opri şi când ajunge într-o configuraţie pentru care δ ( Qx, ) nu este definită. Înainte de a da definiţie formală vom parcurge câteva exemple. Exemplu.. Se presupune că maşina M are patru stări: Q, Q, Q şi Q 3. Şirurile de intrare admise sunt formate din simbolurile a, b şi c. Fie Q starea iniţială şi funcţia de tranziţie δ dată de tabela din figura.. S t ă r i Input curent a B c Q Q Q Q Q Q Q Q3 Q Q3 Q Q Q3 Q3 Q Q Figura.. Tabelul funcţiei de tranziţie. Maşina poate fi reprezentată, în mod autoexplicativ, prin aşa numita diagramă de stare sau diagramă de tranziţie corespunzătoare din figura.. Săgeata indică că Q este starea iniţială. Observăm că în unele cazuri maşina rămâne în aceeaşi stare, de exemplu δ ( Q3, a) = Q3. Aşadar, dacă maşina se află în starea Q 3 şi simbolul de intrare este a, maşina rămâne în starea Q 3 şi următorul simbol va fi citit. Dacă input-ul

maşinii este aacbbca, maşina va trece prin următoarea secvenţă de mişcări: a a c b b c a Q Q Q Q Q Q Q Q 3 3 Aici i x Q Q înseamnă trecerea maşinii din starea Q i în j Q j citind input-ul x, δ ( Q, x) = Q. După ce a fost citit şirul de intrare maşina se află în starea Q 3. i j Maşini cu stări finite sunt folosite pentru recunoaşterea sau acceptarea diferitelor tipuri de şiruri şi respingerea altora, în funcţie de starea maşinii după citirea şirului. Pentru o maşină cu stări finite M dată, stabilim unele din stări drept acceptate sau finale. Când un şir σ = xx x este introdus în maşină, ea va executa secvenţa de mişcări... n descrisă mai sus (începând cu starea iniţială Q şi simbolul x ). După citirea simbolul x n, aflăm starea în care se opreşte maşina M.

Figura.. Diagramă de tranziţie. Dacă starea curentă este o stare acceptată, vom spune că M acceptă σ, în caz contrar M nu acceptă σ. În diagrama de tranziţie pentru M marcăm stările acceptate cu un cerc dublu. Figura.3. Stare acceptată Q. Starea iniţială poate fi o stare acceptată. O maşină în care aşa ceva are loc va accepta şirul vid λ. (Poate accepta şi alte şiruri.) Exemplu.. Construim o maşină M care acceptă şiruri de simboluri şi cu un număr par de -uri (şi nimic alt ceva). Diagrama de tranziţie a maşinii este dată în figura.4. Aşadar, dacă avem ca input σ = secvenţa de mişcări este:

Q Q Q Q Q Q Q Q Q Maşina se opreşte in starea acceptată Q, astfel σ este acceptat de M. Pe de altă parte, dacă input-ul este σ = secvenţa de mişcări va fi Q Q Q Q Q Q. Starea Q în care se opreşte maşina, nu este o stare acceptată şi ca urmare şirul σ nu este acceptat de M. Figura.4. Diagrama de tranziţie a unui automat finit. Cap de citire Şir de intrare Input curent xk Stare curentă Q j Figura.5. Reprezentare schematică a unei maşini cu stări finite.

Figura.5. arată o reprezentare schematică a maşinii cu stări finite. Capul de citire se mişcă numai la dreapta; săgeata spre simbolul starea curentă. Definiţia formală a unei maşini cu stări finite este: Q j indică obiecte: Definiţia.. O maşină cu stări finite se compune din următoarele. O mulţime finită, nevidă Q = { Q, Q, K, Q n }. Elementele Q din Q se numesc stări;. O mulţime finită, nevidă Σ= { a, a, K, a k } de simboluri admise în şirul de intrare. Mulţimea Σ se numeşte alfabetul de intrare pentru M; 3. O stare desemnată Q Q, denumită stare iniţială; 4. O funcţie de tranziţie δ ( Qa, ) definită pentru toţi Q Q şi a Σ. Valoarea funcţiei δ ( Qa, ) este o stare din Q, δ :Q Σ Q. 5. O mulţime nevidă F de stări din Q. Elementele din F se numesc stări finale sau acceptate. O maşină cu stări finite M va atunci un cvintet M = {Q, Σ, Q, δ,f}. Q Pentru maşina din exemplul.. avem Q = { Q, Q}, Σ= {, }, = Q şi δ este dat prin δ( Q,) = δ( Q,) = Q, δ( Q,) = δ( Q,) = Q. În literatura de specialitate există doar mici variaţii ale acestei definiţii. Uneori nu este necesar ca funcţia de tranziţie δ ( Q, x) să fie definită pentru toţi Q şi x; de asemenea mulţimea stărilor acceptate poate fi vidă.

Şir de intrare Figura.6. Maşină cu stări finite în configuraţia Qaa, K k k+ a. m Pentru a simplifica descrierea mişcărilor maşinii, introducem conceptul de configuraţie. O configuraţie a unei maşini M este o pereche Q, σ, unde Q este starea şi = aa k k K am este partea şirului de intrare σ + care se află la dreapta şi sub capului de citire, vezi figura.6. Dacă maşina M se află în configuraţia Qaa, K k k+ a şi ˆ m δ ( Qa, k ) = Q, ˆ, k k m următoarea configuraţia a maşinii M este Qa a K + + a. Numim aceasta mişcare şi o vom nota în felul următor: Qaa, Ka Qa ˆ, a Ka k k+ m k+ k+ m Când şirul de intrare este vid, de exemplu după citirea întregului şir, configuraţia maşinii M este Q, λ, unde λ ia locul şirului vid. Ca urmare, mişcarea maşinii din exemplul.. cu input-ul este descrisă de următoarea secvenţă de configuraţii:

Q, Q, Q, Q, Q, Q, λ Dacă pentru o anumită secvenţă de configuraţii avem secvenţa de mişcări Q, σ Q, σ L Q p, σ p vom nota aceasta Q, σ Q p, σ p şi o numim tranziţie. Exemplu.3. Maşina M are ca alfabet mulţimea Σ= {,, }. Fie input-ul pentru M numerele întregii nenegativi exprimaţi în notaţie ternară (în baza 3). Astfel, şirul εε K ε n reprezintă numărul x = ε + ε 3+ ε 3 + L ε 3 n. n n n Maşina va accepta un şir εε K εn dacă şi numai dacă numărul corespunzător lui x este par. Va accepta ( = + 3+ 9= 6, în baza ) însă nu şi ( = + 3+ 9=, în baza ). Comportamentul maşinii corespunde următoarei reguli de paritate a numerelor exprimate în notaţie ternară: dacă x = ε + ε 3+ ε 3 + L ε 3 n (.) n n n

atunci x este par, dacă şi numai dacă ε+ ε + L + εn este par. Pentru a vedea aceasta, presupunem că x este dat de (.). Împărţirea cu a puterilor lui 3, dă restul. Astfel, când împărţim x cu, fiecare termen 3 n ε k k va contribui cu k ε la rest. Demonstraţia formală se poate da cu ajutorul congruenţelor. Maşina M corespunde atunci diagramei din figura.7. Figura.7. Divizibilitatea cu. Funcţia de tranziţie δ este dată astfel încât δ( Q, ε ) = Q, unde j este restul obţinut în urma împărţirii lui i + ε la ( j i+ ε (mod ) ). Cu input-ul de forma σ = maşina trece prin secvenţa de configuraţii i j Q, Q, Q, Q, λ şi pentru σ = mişcările sunt Q, Q, Q, Q, Q, λ.

.. DESCRIEREA UNUI LIMBAJ CU AJUTORUL MAŞINILOR Conceptul de maşină cu stări finite permite o nouă metodă de descriere a limbajelor. Fie M o maşină cu stări finite având alfabetul Σ. Definim limbajul LM ( ) generat de M ca mulţimea şirurilor de elemente din Σ acceptate de M. Cu alte cuvinte, un şir σ = xx K xn din Σ va fi în LM ( ) dacă şi numai dacă maşina M, pornită cu input-ul σ, se va opri într-o stare acceptată. Formal avem: Definiţia.. Fie M = {Q, Σ, Q, δ,f} o maşină cu stări finite. Limbajul LM ( ) generat (recunoscut sau acceptat) de M este definit ca { σ σ λ } LM ( ) = Σ Q, Q, unde Q F. Descriere de mai sus a unui limbaj este foarte convenabilă. Maşini cu stări finite por fi uşor simulate pe calculator, de fapt, ele pot fi uşor implementate şi în componente hardware. Astfel, dat fiind un limbaj L pentru care se poate construi o maşină cu stări finite, atunci, s-a obţinut, de fapt, un analizator automat pentru L. În mod firesc apare următoarea întrebare: Fiind dată o gramatică G, putem construi o maşină cu stări finite M astfel încât LG ( ) = LM ( )? Din nefericire (sau din fericire, în funcţie de punctul de vedere), acest lucru este posibil doar pentru un tip special de gramatici gramaticile regulare. Reamintim că G este regulară dacă este liniară la dreapta (producţiile sunt de forma A ab, A a sau

S λ ) sau liniară la stânga (producţiile sunt de forma A Ba, A a sau S λ ). Avem următorul rezultat. Teorema.. Fie L un limbaj. Există o maşină cu stări finite M astfel încât L= L( M) dacă şi numai dacă există o gramatică regulară G astfel ca L= L( G). În cele ce urmează vom demonstra doar suficienţa. Fiind dată o maşină cu stări finite M, construim o gramatică regulară G astfel încât LM ( ) = LG ( ). Pentru M avem: stările Q, Q, K, Qn, alfabetul Σ= { a, a, K, a k }, funcţia de tranziţie δ ( Qa, ), starea iniţială Q şi F mulţimea stărilor finale. Gramatica G este construită astfel:. Alfabetul (mulţimea de terminale) este Σ= { a, a, K, a k }.. Mulţimea neterminalelor este mulţimea simbolurilor din Q ( N = Q ). 3. Simbolul de start în G este Q starea iniţială a lui M. 4. Producţiile din G sunt formate după următoarele reguli: I. Pentru fiecare tranziţie δ ( Qi, a) = Qj, unde Q j nu este o stare finală, folosim producţia Qi aq. j II. Pentru fiecare tranziţie δ ( Qi, a) = Qj, unde Q j este o stare finală, folosim producţiile Qi aq şi Qi j a. III. Dacă Q este a stare finală, folosim producţia Q λ. Evident gramatică obţinută este regulară (liniară la stânga).

Exemplu.4. Fie M definită de diagrama din figura.8. Gramatica corespunzătoare G este construită astfel:. Q. Q bq b Regula II. Q Q b 3. Q aq Regula I. Q Q 4. Q λ Regula III. Q F 5. Q 6. Q 7. Q 8. Q aq q Regula II. Q Q a bq b Regula II. Q Q b 9. Q aq Regula I. Q Q. Q. Q bq b Regula II. Q Q b a a Stare iniţială Q Stări acceptate Q şi Q Figura.8. Gramatică pentru o maşină cu stări finite. Demonstraţia pentru LM ( ) = LG ( ) este imediată. Presupunem că un şir xx xp σ = K este acceptat de maşină. Secvenţa de configuraţii pentru M va fi

Q, x x Kx Qˆ, x x Kx Qˆ, x x Kx p 3 p 3 4 p Qˆ, x x Kx Qˆ, x K x (.) i i+ i+ p i+ i+ p Qˆ, x Qˆ, λ p p p unde x j Σ, Q ˆ j Q şi Q ˆ p F. Tranziţiile corespund funcţie de tranziţie din (.3). δ( Q, x ) = Qˆ, δ( Qˆ, x ) = Qˆ, K, δ( Qˆ, x ) = Qˆ, K, δ( Qˆ, x ) = Qˆ i i+ i+ p p p (.3) Prin urmare, gramatica G include (printre altele) următoarele producţii: Q xqˆ, Qˆ x Qˆ, K, Qˆ x Qˆ, K, Qˆ x Qˆ, Qˆ i i+ i+ p p p p x p (.4) Ultima producţie este inclusă deoarece Q ˆ p este o stare finală. Deci, şirul σ = xx K x poate fi derivat în gramatica G astfel p Q xqˆ x x Qˆ K x x KxQˆ x x Kx x Qˆ x x Kx Qˆ x x Kx x i i+ i+ p p p p i i (.5) În toate derivările, cu excepţia ultimei, am folosit producţii de forma Qˆ x Qˆ ; în ultima însă am folosit producţia Q ˆ p x p. Inversa se i i + i + demonstrează în mod analog: Presupunem că derivarea unei propoziţii xx K x în gramatica G este dată de (.5). Aceasta implică că toate p

producţiile din (.4) sunt producţii în G, deci funcţia de tranziţie δ satisface relaţiile (.3) ceea ce implică, în final, că maşina M trece prin secvenţa de configuraţii (.3), xx K x LM ( ). Prin urmare, suficienţa teoreme.. este demonstrată. p Ca exemplu, considerăm maşina M şi gramatica G din exemplul.4. Şirul σ = abaab aparţine limbajului LM ( ) întrucât Q, abaab Q, baab Q, aab Q, ab Q, b Q, λ şi Q este o stare finală. Derivarea lui σ în gramatica G este atunci 3 7 9 5 Q aq abq abaq abaaq abaab. Numărul producţiei folosite este indicat deasupra săgeţilor. Un mic comentariu merită să fie făcut asupra acceptării şirului vid λ de o maşină cu stări finite M. Când un astfel de şir este prezentat maşinii, ea porneşte din configuraţia ( Q, λ ), unde Q este starea iniţială, şi se opreşte fără să fi facă nici o singură mişcare. Deci, λ LM ( ) dacă şi numai dacă starea iniţială Q este o stare finală..3. MAŞINI CU STĂRI FINITE NEDETERMINISTE Demonstraţia necesităţii teoremei.. este imediată. Dată fiind o gramatică G, construim o maşină cu stări finite M care acceptă LG ( ), punând neterminalele să joace rolul stărilor şi incluzând tranziţia a A B

( δ ( Aa, ) = B) pentru fiecare producţie de forma A ab. Cu toate acestea, după cum arată exemplul următor, ideea nu aduce rezultatul dorit. Fie G gramatica S S aa A ab B b bb A as. Dacă încercăm să construim maşina potrivit schemei indicate, apar două dificultăţi. Mai întâi, ce ar trebui să fi δ ( Ba, )? Nu există o producţie de forma B ax pentru nici un neterminal X. După cum vom vedea mai târziu, acesta este doar un mic inconvenient care poate fi eliminat. O problemă cu mult mai serioasă apare la producţiile A ab sau A as. În încercarea construirii maşinii M ne lovim de dilema definirii lui δ ( Aa, ), de pildă, ce e de făcut când M se află în starea A şi citeşte simbolul a. Producţia A ab implică ca următoarea stare δ ( Aa, ) să fie B, în timp ce A as sugerează să fie S. Aşadar, fragmentul diagramei de descriere a M va arăta ca în figura.9. Figura.9. Diagramă de tranziţie la ambiguitate. La definirea maşinii cu stări finite în definiţia.., s-a precizat că δ ( Q, x) a fost definită pentru fiecare stare Q în parte şi orice simbol de intrare x, iar cunoscând Q şi x, ştim starea următoare, de exemplu, valoarea funcţie de tranziţie δ ( Q, x) a fost unic definită. Maşina nu a fost lăsată să facă nici o altă alegere. O modalitate de ieşire din acest impas este de a

extinde definiţia unei maşini cu stări finite, permiţând includerea particularităţilor descrise mai sus. Astfel de dispozitive vor fi numite automate finite nedeterministe (AFN) sau maşini cu stări finite nedeterministe (MSFN). Se observă, că dată fiind o maşină de acest gen, M, există un automat finit determinist obişnuit (definit ca în definiţia..) care acceptă acelaşi limbaj ca M. În continuare vom descrie detaliat acest concept. Definiţia.3. O maşină cu stări finite nedeterministă (MSFN) se compune din următoarele cinci obiecte:. O mulţime finită, nevidă Q = { Q, Q, K, Q n } de stări.. O mulţime finită, nevidă Σ= { a, a, K, a k } de simboluri de intrare admise (alfabetul). 3. O stare desemnată Q Q, numit stare iniţială. 4. O funcţie de tranziţie δ ( Q, x), care nu trebuie definită pentru toţi Q din Q şi x din Σ. Pentru acei Q şi x pentru care este definită, δ ( Q, x) desemnează o mulţime de una sau mai multe stări din Q. Concret, dacă β (Q) este mulţimea tuturor submulţimilor din Q, atunci funcţia de tranziţie este δ :Q Σ β(q). Cu această notaţie, δ ( Q, x) nu e definită înseamnă δ ( Q, x) = (mulţimea vidă). Funcţia δ se interpretează la fel ca în cazul determinist: starea următoare. Diferenţa este doar, că admite mai multe posibilităţi (sau nici una). 5. O mulţime nevidă F de stări. Elementele din F se numesc stări acceptate sau finale.

Aceste maşini M vor fi notate {Q, Σ, Q, δ,f} (ca maşinile deterministe) şi se mai numesc automate finite nedeterministe (AFN). Aşadar, totul e la fel ca în cazul determinist, cu excepţia definirii funcţie de tranziţie δ. Mişcările unui MSFN sunt date în felul următor.. Fiind dat un şir σ = xx K xp de simboluri de intrare din Σ, configuraţia iniţială va fi Q xxk x, p, unde M este în starea iniţială Q cu simbolul de intrare x.. Presupunem că la un moment dat, configuraţia M este Q, xx K i i+ x. Dacă p ˆQ este una din valorile posibile ale lui δ ( Q, x i ) (mai exact, Q ˆ δ ( Q, x i )) atunci M poate trece în ˆ, i + p configuraţia Q x K x. Deci, dacă M se află în starea Q şi simbolul de intrare este x, M poate trece în orice stare din δ ( Q, x i ), dar nu în alta. Când δ ( Q, x i ) = nu se va face nici o mişcare. Trecerea, dacă e posibilă, de la o configuraţie la alta, se numeşte mişcare legală şi este notată prin Q, x x Kx Qˆ, x K x. i i+ p i+ p 3. Maşina se opreşte dacă a citit întregul input (în configuraţia Q, λ ) sau când δ ( Q, x i ) = ( δ ( Q, x i ) nu conţine posibilităţi pentru următoarea starea). Exemplu.5. Fie M o MSFN după cum urmează. Mulţimea stărilor Q are patru elemente: Q = { Q, Q, Q, Q3}, alfabetul Σ= {,, 3}, starea iniţială este Q şi mulţimea stărilor finale F = { Q, Q3,}.

S t ă r i Q Input curent { Q, Q} { Q} Q { Q} Q Q3 Q { Q} 3 Q3 { Q} 3 {, } { Q, Q } { Q, Q } { Q3} Figura.. O funcţie de tranziţie nedeterministă δ. Figura.. O MSFN. Funcţia de tranziţie este dată de tabelul din figura.., sau de diagrama din figura.. Astfel, dacă maşina se află în starea Q şi simbolul de intrare este, M poate trece în stările Q sau Q 3. Ca urmare, dat fiind un input σ, maşina M poate trece prin diferite secvenţe de mişcări. De

exemplu, pentru σ = unele dintre mişcările posibile sunt următoarele: Q, Q, Q, Q, Q, Q, λ stop 3 Q, Q, Q, Q, stop Q, Q, Q, Q, stop Q, Q, Q, Q, Q, Q, λ stop 3 3 În prima secvenţă, input-ul este citit în întregime dar maşina se opreşte într-o stare neacceptată; în a doua şi a treia secvenţă, M se opreşte înainte ca şirul să fie citit în întregime; şi în a patra secvenţă, întregul şir este citit iar ultima stare este o stare acceptată. Dacă Q, σ şi Qˆ, ˆ σ sunt două configuraţii, astfel încât M poate trece din Q, σ în Qˆ, ˆ σ printr-o secvenţă de mişcări admise, spunem că Qˆ, ˆ σ este derivabil din Q, σ şi notăm aceasta Q, σ Qˆ, ˆ σ. În exemplul.5. avem Q, Q, şi 3 Q, Q, λ. Putem defini acum un limbaj generat (acceptat, recunoscut) de o maşină cu stări finite nedeterministă. Definiţia.4. Fie M = {Q, Σ, Q, δ,f} o MSFN. Spunem că un şir σ = xx K x de elemente din Σ este acceptat de M dacă p

Q, x x Kx Q, λ p şi Q F. Mulţimea şirurilor acceptate de M se notează LM ( ) şi se numeşte limbaj generat de M. Observăm, că pentru ca un şir σ să fie acceptat de M, avem nevoie doar de o secvenţă legală de mişcări din Q, σ în, Q λ, unde Q este o stare acceptată; nu toate secvenţele legale vor fi folosite aici. În exemplul.5. Q, Q3, λ, deci σ = este în LM ( ) deoarece Q 3 este o stare acceptată. Chiar dacă maşina porneşte în configuraţia Q,, ea poate ajunge în mai multe impasuri: Q, Q,, Q, Q,, etc. Evident, că maşinile cu stări finite din definiţia.. sunt cazuri particulare ale maşinilor nedeterministe. Ele se caracterizate prin faptul că pentru fiecare stare Q şi pentru fiecare input x mulţimea δ ( Q, x) este formată dintr-o singură stare. Din acest motiv e de aşteptat ca clasa limbajelor acceptate de maşini nedeterministe să fie mai mare decât clasa acceptată de maşinile deterministe, de exemplu, să existe o MSFN M, astfel încât pentru nici o maşină deterministă K să avem LM ( ) = LK ( ). Surprinzător, acesta nu va fi cazul. Avem următoarea teoremă. Teorema.. Fie M o maşină cu stări finite nedeterministă. Atunci există o maşină deterministă K astfel încât LM ( ) = LK ( ); maşinile M şi K acceptă acelaşi şir.

Demonstraţie. Luăm o maşină cu stări finite nedeterministă M, de genul celei specificate în definiţia.3. Fie Q = { Q, Q, K, Q n } o mulţime de stări din M, cu Q starea iniţială, Σ= { a, a, K, a k } alfabetul, δ funcţia de tranziţie şi F mulţimea stărilor acceptate. Maşina K se specifică astfel:. Alfabetul de intrare pentru K este Σ acelaşi ca la M.. Stările din K vor fi toate submulţimile posibile din Q. De exemplu, dacă M are trei stări Q, Q şi Q stările din K vor fi S Q S 5 = { }, S = { Q}, S = { Q}, S3 = { Q, Q}, S4 = { Q, Q}, = { Q, Q }, S6 = { Q, Q, Q} şi S 7 = mulţimea vidă. (Se include mulţimea vidă ca submulţime a fiecărei mulţimi.) Astfel, dacă M are n stări maşina K va avea n stări: S, S, S, K, S n. Mulţimea stărilor din K se notează cu S. 3. K are starea iniţială S = { Q}, unde Q este starea iniţială din M. 4. O stare S S va fi stare finală în K dacă şi numai dacă conţine o stare finală Q F din M. De exemplu, considerând M maşina din exemplul.5., stările finale pentru K vor fi mulţimi care conţin Q sau Q 3 (sau ambele). Acestea sunt { Q }, { Q 3}, { Q, Q }, { Q, Q 3}, { Q, Q }, { Q, Q 3}, { Q, Q 3}, { Q, Q, Q }, { Q, Q, Q 3}, { Q, Q, Q 3}, { Q, Q, Q 3} şi { Q, Q, Q, Q 3} în număr de. 5. Funcţia de tranziţie pentru K este definită în felul următor. Fie S = { Qi, Q,, } i K Q i p o stare din K şi x Σ. Valoarea ( S, x) corespunde altei stare din K, de exemplu, o mulţime de Q-uri definite după regula: Dacă Q δ ( Qj, x) pentru uni Q j din S, atunci Q ( S, x)

Formal avem ( S, x) =U δ ( Q, x) (.6) Q S Cu alte cuvinte, dacă pentru uni Q j din S maşina M poate trece la input-ul x din starea Q în Q, atunci Q ( S, x). O nedeterminare apare când S = j (mulţimea vidă, care este o stare din K). Formal, aceasta nu reprezintă o problemă, deoarece formule (.6) ne dă în acest caz (, x) fi x (o reuniune de mulţimi vide este vidă). = oricare ar Astfel, maşina K e complet definită şi evident deterministă: Pentru fiecare stare S din K şi fiecare simbol de intrare x, funcţia ( S, x) defineşte în mod unic altă stare pentru K. Înainte de a trece la a demonstra că ambele maşini acceptă acelaşi limbaj, să vedem, ca exemplu, cum construim K. Exemplu.6. Fie M maşina din exemplul.5. Maşina deterministă 4 corespunzătoare K are 6 ( = ) stări: S = { Q }, S = { Q}, S = { Q}, S3 = { Q3}, S4 = { Q, Q}, S5 = { Q, Q}, S6 = { Q, Q3}, S = { Q, Q }, S8 = { Q, Q3}, S9 = { Q, Q3}, 7 S = { Q, Q, Q}, S = { Q, Q, Q3}, S = { Q, Q, Q3}, S3 = { Q, Q, Q3}, S4 = { Q, Q, Q, Q3} şi S 5 =.

Starea iniţială este S = { Q} şi stările acceptate sunt S, S 3, S 5, S 6, S 7, S 8, S 9, S, S, S, S 3 şi S 4, acei S care conţin Q şi/sau Q 3 stările finale din M. Să calculăm unele valori ale funcţie de tranziţie. Considerăm ca exemplu ( S5,). Deoarece S 5 = { Q, Q } şi δ ( Q,) = { Q}, δ ( Q,) = { Q, Q }, atunci 3 ( S5, ) = δ( Q, ) δ( Q, ) = { Q} { Q, Q3} = { Q, Q3} = S6, deci ( S5,) S6 =. Analog, pentru S7 = { Q, Q}, ( S, ) = δ( Q, ) δ( Q, ) = { Q } = { Q } = S. De asemenea, 7 ( S, ) = δ ( Q, ) = = S. Prin urmare ( S 5, x) S 5 = pentru x =,,. Descrierea completă a funcţie de tranziţie este dată în tabelul din figura.. Maşina K are propria diagramă de tranziţie, dar imaginea ei este prea complexă. Aruncând o privire asupra tabelei funcţiei, se observă că K are mai multe stări decât sunt necesare. De pildă, starea S 7 nu poate fi atinsă din starea iniţială S. De altfel, ea nu poate fi atinsă din nici o stare. Aşadar, putem înlătura starea S 7 iar maşina va accepta acelaşi şir. Vom discuta, pe scurt, problema obţinerii unei MSF pe cât posibil de mică. Ceea ce încercăm să arătăm acum este, că dată fiind o MSF nedeterministă, există o MSF deterministă care acceptă exact acelaşi şir; nu încercăm să găsim cea mai eficientă maşină de acest gen.

S S S S Input x = { Q} S4 S S5 = { Q} S5 S S6 = { Q} S S6 S5 3 = { Q3} S S3 S3 S Q Q 4 = {, } S4 S5 S6 S t ă r i S Q Q 5 = {, } S S5 S5 S Q Q S S 6 = {, 3} S S S3 7 = { Q, Q} S S S6 8 = { Q, Q3} S S3 S6 S Q Q 9 = {, 3} S S S3 S Q Q Q = {,, } S S S6 S Q Q Q = {,, 3} S S4 S6 S Q Q Q = {,, 3} S S S3 S Q Q Q 3 = {,, 3} S S4 S6 S Q Q Q Q 4 = {,,, 3} S S4 S6 S 5 = S5 S5 S5 Figura.. Tabela funcţie de tranziţie. Ne întoarcem la a demonstra că LK ( ) = LM ( ). Presupunem că un şir σ = x, x, K, xp este acceptat de M. Aceasta înseamnă că pentru o secvenţă de stări Q, Q ˆ ˆ ˆ, Q, K, Qp secvenţa de mişcări x x x x i+ p ˆ ˆ ˆ ˆ ˆ ˆ ˆ = i i+ p p Q Q Q Q L Q Q L Q Q (.7)

este legală, iar Q ˆ p este o stare acceptată din M. Rezultă că pentru fiecare i =,,,..., p, funcţia de tranziţie δ satisface Qˆ δ ( Qˆ, x ), i =,,..., p (.8) i+ i i+ Când şirul δ este introdus în maşina K, maşina execută următoarea secvenţă de mişcări: x x x x i+ p ˆ ˆ ˆ ˆ ˆ ˆ ˆ = i i+ p p S S S S L S S L S S (.9) Pentru i = în (.8), ˆQ este în δ ( Q ˆ, x), deoarece Qˆ x Qˆ este o tranziţie legală în M, astfel ˆQ este în Sˆ = ( Sˆ, x ). Analog, cu i =, ˆQ este în ˆ δ ( Q, x), deci Q S S x ˆ ˆ = ( ˆ, ). Continuând în această manieră, observăm că Q ˆ j este în S ˆ j oricare ar fi j, în particular, Q ˆ p S ˆ p. Q ˆ p fiind o stare finală în M (σ a fost acceptat de M), constatăm că S ˆ p este o stare finală în K, σ este acceptat de K. Reciproc, presupunem că un şir σ = x, x, K, xp este acceptat de K, şi fie (.9) secvenţa de mişcări făcute de K la input-ul σ. Pentru fiecare Qˆ Sˆ mişcarea Qˆ x Qˆ este legală pentru maşina M ( Ŝ se compune din acei Q pentru care x Qˆ Q este mişcare legală în M). Analog, pentru fiecare Q ˆ ˆ S există un ˆQ în Ŝ astfel încât secvenţa de mişcări x x ˆ ˆ ˆ Q Q Q

este legală în M. Alegem ˆQ ca fiind starea pentru care tranziţia x Qˆ Qˆ este legală ( ˆQ există deoarece ( S ˆ ˆ, x) = S). În acelaşi mod arătăm, că dacă Q ˆ ˆ 3 S3, atunci putem găsi Q ˆ ˆ S şi Q ˆ ˆ S astfel încât x x x3 ˆ ˆ ˆ ˆ 3 Q Q Q Q este o secvenţă legală de mişcări. Continuând în acest fel, observăm că pentru fiecare Q ˆ p şi S ˆ p putem găsi Q ˆ ˆ S, Q ˆ ˆ S,..., Qˆ Sˆ astfel încât (.7) să fie o secvenţă legală de mişcări din M. Dacă p p alegem acum Q ˆ p din S ˆ p, care este o stare acceptată din M, constatăm că σ este acceptat de M, adică, face parte din limbajul LM ( ). Q.E.D. Definiţia.5. Fie M şi M două MSF. Maşinile M şi M se numesc echivalente dacă generează (acceptă) acelaşi limbaj, LM ( ) = LM ( ). Se observă imediat, din demonstraţia teoremei.., că dată fiind o maşină nedeterministă M, maşina deterministă corespunzătoare M este destul de mare. Într-adevăr, dacă M are n stări, atunci construcţie cere de la M n stări. Dacă n =, atunci M va avea = 4 stări. În paragraful.5. vom arăta cum micşorăm M, de fapt cum să găsim cea mai mică maşină echivalentă cu M. În unele cazuri, construirea lui M poate fi cu mult simplificată. Ne reamintim că maşina M = {Q, Σ, Q, δ, F} va eşua la determinism din două motive:. δ ( Q, x) = pentru Q Q şi x Σ (dacă M se află în starea Q şi simbolul de intrare este x, următoarea stare e nedefinită).. δ ( Q, x) conţine mai mult de o stare (pentru unii Q şi x).

Natura celor două cazuri diferă; maşina M nu este chiar nedeterministă, problema constă în faptul că se poate bloca într-un punct mort. Din acest motiv, unii autori nu consideră astfel de maşini nedeterministe. În cazuri în care apare şi nu (atunci când δ ( Q, x) este întotdeauna goală sau conţine o singură stare) construirea unei maşini deterministe echivalente poate fi cu mult simplificată. Teorema.3. Fie M = {Q, Σ, Q, δ, F} o maşină cu stări finite nedeterministă astfel încât pentru fiecare Q Q şi x Σ mulţimea δ ( Q, x) este vidă sau conţine un singur element. Fie K o maşină obţinută din M prin adăugarea unei stări noi D, şi a cărei funcţie de tranziţie este definită după cum urmează: δ( Q, x) dacă δ( Q, x) ( Q, x) = { D} dacă δ ( Q, x) = ( D, x) = { D} pentru toţi x Σ Stările finale şi iniţiale din K sun aceleaşi ca şi în M în particular D nu este o stare acceptată. Atunci K este o maşină deterministă şi echivalentă cu M. Starea D introdusă mai sus are înţelesul de capcană sau stare moartă. Ideea din spatele teoremei.3. este evidentă: Dacă maşina M se blochează într-o stare oarecare, şirul σ citit nu poate fi acceptat. Totuşi se trimite maşina în acea stare moartă. Demonstraţie. Faptul că K e deterministă este evident: Pentru fiecare stare Q Q { D} şi x Σ mulţimea ( Q, x) conţine numai o

singură stare. Dacă un şir σ = x, x, K, xp este acceptat de M, atunci secvenţa de mişcări din K, la input-ul σ, este aceeaşi ca secvenţa de mişcări din M cu acelaşi input singura posibilitate ca mişcările să difere este când M se blochează într-o configuraţie Q, xixi+ K xp δ ( Q, xi) = (.) Deoarece M acceptă σ, aceasta nu va avea loc. Reciproc, dacă M nu acceptă σ, atunci ori M trece din configuraţia Q, σ în, Q λ unde Q nu e stare acceptată, caz în care K face acelaşi lucru, ori M se blochează în configuraţia (.). În acest caz, K continuă prin a trece în starea D şi rămâne aici până când s-a citit restul şirului. Cum D nu este o stare acceptată, K nu acceptă pe σ. Q.E.D. Exemplu.7. Considerăm maşina M a cărei diagramă de tranziţie este dată în figura.3. Evident, M satisface condiţiile teoremei.3., maşina K echivalentă cu M este dată de diagrama figurii.4. Figura.3. Funcţie de tranziţie incompletă.

Figura.4. Completarea funcţiei de tranziţie..4. GRAMATICI REGULARE ŞI MAŞINI CU STĂRI FINITE În această parte completăm demonstraţia teoremei.. arătând că, dată fiind o gramatică regulată G, există o maşină cu stări finite deterministă M astfel încât LM ( ) = LG ( ). Vom demonstra doar pentru gramaticile liniare la dreapta (producţiile sunt de forma S λ, A ab sau A a); cazul gramaticilor liniare la stânga este simplu şi va fi lăsat ca exerciţiu. În contextul teoremei.., este suficient de arătat că dată fiind o gramatică liniară la dreapta, există o maşină nedeterministă M astfel încât LM ( ) = LG ( ). Teorema.4. Fie G o gramatică liniară la dreapta. Atunci există o maşină cu stări finite nedeterministă M astfel încât LG ( ) = LM ( ). Demonstraţie. Fie G cu alfabetul Σ= { a, a, K, a k }, mulţimea de neterminale N = { S, A, B, K }, S simbolul de start şi P mulţimea

producţiilor. Alfabetul de intrare pentru M va fi tot Σ, stările din M vor fi neterminalele S, A, B, K, plus o stare X, diferită de celelalte neterminale. Starea iniţială din M este S. Stările acceptate din M sunt X şi, dacă S λ este o producţie în G, starea S. Funcţia de tranziţie δ din M este definită prin următoarele reguli:. Pentru fiecare producţie de forma A ab din G se include B în δ ( Aa, ), de exemplu, se include tranziţia a A B în diagrama de tranziţie.. Pentru fiecare producţie de forma A a se include starea X în δ ( Aa, ), de exemplu, se include tranziţia a A X în diagrama de tranziţie. În general, maşina rezultată fa fi nedeterministă. Trebuie să arătăm că şirurile acceptate de M sunt chiar acelea ce sunt derivabile în G. Fie σ = xx K x un şir acceptat de M. Prin definiţie există o secvenţă legală de mişcări n x x x3 x n S = Z Z Z3 L Zn Z n + (.) unde Z n + este stare acceptată şi Z = n+ X sau (eventual) Z = n+ S. Pentru x i fiecare i< n tranziţia Z Z + este legală, ceea ce implică că i i Z i+ δ ( Zi, xi), astfel încât Zi xz i i + este o producţie în G. Considerăm x n acum ultima tranziţie Z Z +. Dacă Zn+ = X, atunci G are producţii de n n forma Zn xn; dacă Z = n+ S, atunci G trebuie să aibă producţiile Zn xns

şi S λ. Astfel, secvenţa de derivări pentru σ în G este dată ori de (.) ori de (.3): S = Z xz x x Z L x x Kx Z x x K x x (.) 3 n n n n S = Z xz x x Z L x x Kx Z x x Kx x S x x K x (.3) 3 n n n n n În ambele cazuri, σ este derivabil în G. Şi reciproca este adevărată. Presupunem că σ este în LG ( ); derivarea lui trebuie să fie de forma (.) sau (.3). În ambele cazuri (.) este o secvenţă legală de mişcări din M. Ceva atenţie trebuie acordată situaţiei când σ = λ este şirul vid. Dacă S λ este o producţie din G atunci evident λ LG ( ). În acest caz S este tot o stare acceptată, astfel încât, dacă λ este introdus în M, configuraţia iniţială a maşinii va fi S, λ şi se opreşte fără să facă o singură mişcare. S fiind o stare acceptată, M acceptă λ, λ LM ( ). Q.E.D. Exemplu.8. Considerăm gramatica S aa ab λ A aa b B bs b Diagrama maşinii nedeterministe M, astfel încât LG ( ) = LM ( ), este dată în figura.5. S λ fiind o producţie, starea S e acceptată. Tranziţia b A X

este rezultatul producţiei A b; b B S provine din producţia B bs; b A A din A aa, etc. Figura.5. Maşină cu stări finite nedeterministă care recunoaşte un limbaj. Pentru a construi o maşină deterministă K astfel încât LK ( ) = LG ( ), ne putem folosi de metoda utilizată în demonstraţia teoremei.. Maşina rezultată K are 6 stări şi funcţia de tranziţie dată de tabela din figura.6. Un număr mare de stări nu poate fi atins din starea iniţială Q. De exemplu, Q 4 nu poate fi atins din nici o stare, deci poate fi eliminată. Desigur, maşina obţinută nu este cea mai mică posibilă. Ideea teoremei.. este că o astfel de maşină poate fi construită. Vom discuta problema găsirii celei mai mici maşini în paragraful următor. Starea iniţială în K este Q iar stările acceptate sunt Q, Q 3, Q 4, Q 5, Q 6, Q 8, Q 9, Q, Q, Q, Q 3 şi Q 4 (acei Q care conţin S sau X).

Q { } Input x a b = S Q7 Q5 Q { } = A Q Q3 Q { } = B Q5 Q6 Q { } 3 = X Q5 Q5 Q {, } 4 = S A Q7 Q3 S t ă r i Q {, } 5 = S B Q7 Q6 Q {, } 6 = S X Q7 Q5 Q {, } 7 = AB Q Q Q {, } 8 = A X Q Q3 Q {, } 9 = B X Q7 Q6 Q {,, } = S A B Q7 Q6 Q { S, A, X} = Q7 Q3 Q {,, } = S B X Q7 Q6 Q {,, } 3 = ABX Q Q6 Q {,,, } 4 = S A B X Q7 Q6 Q 5 = Q5 Q5 Figura.6. Funcţia de tranziţie a maşinii K. Considerăm acum, de exemplu, derivarea S ab abs abaa abaaa abaab Mişcările maşinii nedeterministe K corespunzătoare acestei derivări sunt

S, abaab B, baab S, abaab S, aab A, ab A, b X, λ. Pe de altă parte, maşina deterministă K va executa secvenţa de mişcări Q, abaab Q, baab Q, abaab Q, aab Q, ab Q, b Q, λ 7 6 7 3..5. MINIMIZARE Exemplele din paragrafele anterioare ne arată că chiar gramatici simple conduc la maşini mari. Ar fi de mare ajutor o metodă de reducere a mărimii maşinilor, dacă e posibil. Considerăm, de exemplu, MSF M din figura.7. Stările Q 3 şi Q 4 pot fi combinate într-o singură stare T, fără a schimba limbajul generat de M. Rezultă o maşină echivalentă M ilustrată în figura.8. Figura.7. O maşină cu stări finite cu prea multe stări.

Orice input σ acceptat de M este de asemenea acceptat de M şi invers. Maşina M poate fi redusă mai mult combinând stările Q şi Q într-o singură stare R. Se obţine o MSF M 3 ca în figura.9. Descrierea limbajului generat de M (deci şi de M ) este acum evidentă: LM ( 3) se compune din toate şirurile de lungime patru, formate din simboluri de şi, terminate în. Figura.8. Eliminare de stări. Figura.9. Maşină cu stări finite minimală. Există un algoritm, care, dacă dată fiind o maşină cu stări finite deterministă M, va produce cea mai mică maşină cu stări finite M astfel încât LM ( ) = LM ( ). Dedicăm acest paragraf descrierii acestui algoritm.

Începem cu a arăta cum se elimină dintr-o maşină aşa numitele stări inaccesibile. Definiţia.6. Fie M o maşină cu stări finite. Spunem că o stare Q din M este inaccesibilă dacă nu există un şir de intrare σ astfel încât Q, σ Q, λ. Unde Q este starea iniţială din M. Cu alte cuvinte, o stare Q din M este inaccesibilă dacă, începând cu stare iniţială Q, maşina nu va ajunge niciodată în starea Q, indiferent de input. De exemplu, stare Q a maşinii din figura.. este inaccesibilă. Figura.. O maşină cu stări finite având o stare inaccesibilă. Evident vom avea: Teorema.5. Fie M o maşină cu stări finite şi fie M o maşină obţinută din M prin eliminarea stărilor inaccesibile. Atunci LM ( ) = LM ( ). Dată fiind o maşină M, toate stările sale inaccesibile pot fi găsite cu următorul algoritm.

Algoritm.. Stări inaccesibile ale unei maşini cu stări finite. Input: O maşină cu stări finite M = {Q, Σ, Q, δ,f}. Output: O mulţime ϑ de stări inaccesibile. Mai întâi, mulţimea de stări accesibile A se construieşte astfel. Formăm o secvenţă {A } n de mulţimi de stări din M conform regulilor:. Q A = { }, A se compune dintr-o singură stare Q starea iniţială din M.. Se presupunem A k deja construit pentru k. Mulţimea A k+ se formează prin adăugarea la A k a stărilor din M accesibile din A k printr-o singură mişcare, A = A { Q: Pentru Qˆ din A şi x din Σ, δ ( Qˆ, x) = Q}. k k k 3. Dacă Ak = Ak+, de exemplu, când nu sunt adăugate stări noi la A k, ne oprim şi punem întoarcem la pasul. A= A. În caz contrar ne k Fiind un număr finit n de stări din M, acest proces se va termina în cel mult n iteraţii. Mulţimea de stări inaccesibile ϑ se obţine din Q prin eliminarea elementelor din A, mulţimii Q). ϑ = Q\A (sunt eliminate din A elementele

Figura.. Eliminarea stărilor inaccesibile. Exemplu.9. Fie M maşina dată prin diagrama de tranziţie din figura.. Atunci avem: A = { Q } prin definiţie A = { Q} { Q, Q} = { Q, Q, Q}, cu δ ( Q,) = Q şi δ ( Q,) = Q A = A { Q4} = { Q, Q, Q3, Q4} cu δ ( Q,) = Q4 A = A din A nu se pot atinge stări noi 3 Astfel A= A = { Q, Q, Q, Q3} şi ϑ = { Q3} este mulţime stărilor inaccesibile. Starea Q 3 poate fi eliminată din M. Menţionăm că acest algoritm se poate aplica şi maşinilor nedeterministe. De pildă, maşina din exemplul.8. are doar şase stări accesibile. Verificarea o lăsăm ca exerciţiu. În continuare vom presupune

că fiecare maşină cu stări finite nu are stări inaccesibile şi ne concentrăm asupra eliminării stărilor structural redundante. Procedeul folosit în acest scop se bazează pe conceptul de congruenţă. Definiţia.7. Fie M = {Q, Σ, Q, δ,f} o maşină deterministă cu stări finite şi k un întreg. Numim două stări Q şi ˆQ k-congruente dacă următoarele sunt adevărate: Fie σ un şir de intrare de lungime cel mult k şi presupunem că Q, σ P, λ, Qˆ, σ Pˆ, λ descriu mişcările din M cu input-ul σ, începând cu stările Q şi ˆQ. Atunci sau P şi ˆP sunt acceptate împreună, sau ele nu sunt acceptate împreună. Dacă Q şi ˆQ sunt k-congruente, vom nota acesta prin Q k Qˆ. Dacă Q şi ˆQ sunt k-congruente pentru toţi k =,, K, spunem că Q şi ˆQ sunt congruente şi notăm Q Qˆ. Înţelesul k-congruenţei este următorul. Presupunem că τ este şirul de testat din LM ( ). Pornim maşina în configuraţia Q, τ ; M îşi continuă mişcările până când ajunge în configuraţia Q, σ, unde σ este un şir de lungime cel mult k. Dacă Q şi ˆQ sunt k-congruente putem schimba starea din Q în ˆQ şi continuăm de aici (cu input-ul σ ), fără ca să se schimbe rezultatul final: Dacă se porneşte cu configuraţia Q, σ, maşina se va opri într-o stare acceptată, acest lucru este valabil şi când maşina a pornit din configuraţia Q ˆ, σ. Presupunem că Q şi ˆQ sunt k-congruente pentru toţi k =,, K. Atunci putem combina Q şi ˆQ într-o singură stare nu va

avea efect asupra mulţimii de şirului acceptate de M. Astfel, pentru a minimiza o maşină cu stări finite M, trebuie să determinăm stările congruente între ele. Din definiţie avem. Dacă Q ˆ k Q atunci Q ˆ k Q. (simetric). Pentru orice stare Q avem Q Qˆ. (reflexiv) 3. Dacă Q ˆ k Q şi Q ˆ k Q3 atunci Q ˆ k Q3. (tranzitiv) k Deci, relaţia k fiind simetrică, reflexivă şi tranzitivă, ea este o relaţie de echivalenţă. Evident expresiile, şi 3 de mai sus, vor rămâne adevărate chiar dacă k se înlocuieşte cu, astfel, congruenţa este o relaţie de echivalenţă pe stările din M. Problema minimizării unei maşini M constă, în esenţă, în împărţirea stărilor din M în clase echivalente; oricare două stări dintr-o clasă vor fi echivalente între ele, iar oricare două stări din clase diferite nu vor fi echivalente între ele. Maşina minimizată va avea ca stări aceste clase de echivalenţă. Se observă că acest procedeu furnizează cea mai mic posibilă maşină echivalentă cu cea originală, adică maşina cu cele mei puţine stări. Înainte de a da un algoritm, avem nevoie de două leme. Lema.. Dacă două stări ale unei maşini sunt ( k + ) -congruente, ele sunt şi k-congruente. Demonstraţia rezultă imediat din definiţie. Lema.. Fie M = {Q, Σ, Q, δ,f} o maşină cu stări finite. Fie k un întreg fixat şi G, G, K, G n partiţia stărilor din M în clase de echivalenţe:

Două stări din fiecare clasă sunt k-congruente între ele şi două stări din clase diferite nu sunt k-congruente între ele. Fie G una din aceste clase şi Q, Q, K, Qm stările din G. Pentru fiecare simbol x Σ şi Q G, fie hk ( Q, x ) clasa G i cu δ ( Q, x). Atunci stările Q şi ˆQ din G sunt ( k + ) -congruente dacă şi numai dacă h ( Q, x) = h ( Qˆ, x) pentru fiecare x Σ (.4) k k Demonstraţie. Presupunem Q şi ˆQ sunt două stări din aceeaşi clasă G şi mai presupunem că (.4) este adevărat. Vrem să arătăm că Q şi ˆQ sunt ( k + ) -congruente, adică, dacă σ este un şir de lungime maximă k +, cu Q, σ P, λ şi Qˆ, σ Pˆ, λ, atunci ori P şi ˆP sunt stări acceptate, ori amândouă nu sunt stări acceptate. Dacă şirul σ este de lungime maximă k, ne oprim, fiindcă conform ipotezei, Q şi ˆQ sunt în aceeaşi clasă G de k -echivalenţă, deci, Q k Qˆ. Presupunem atunci că σ are lungimea k +, de exemplu, Dar atunci σ = xτ, unde x Σ şi τ este de lungime k. Q, σ = Q, xτ Q, τ P, λ şi Qˆ, σ = Qˆ, xτ Qˆ, τ Pˆ, λ

' şi ambii Q şi ˆQ aparţin aceleaşi clase G (deoarece (.4) e valabilă, deci h Q x G ˆ ). Astfel Q ˆ k Q şi τ având lungimea k, observăm că ' k(, ) = = hk( Q, x) P şi ˆP sunt amândoi acceptaţi sau neacceptaţi. Reciproc, presupunem Q şi ˆQ sunt două stări ( k + ) -congruente; vrem să arătăm că (.4) este adevărată. Într-adevăr, dacă h ( Q, x) h ( Qˆ, x) pentru x Σ, atunci δ ( Q, x) = Q hk ( Q, x) şi k ˆ ˆ ˆ k δ ( Q, x) = Q hk ( Q, x), deci Q şi ˆQ nu sunt k-congruente. Aceasta implică, că pentru un şir oarecare σ, de lungime cel mult k, configuraţiile Q, σ şi Q ˆ, σ se vor termina diferit: una într-o stare acceptată iar cealaltă într-una neacceptată. Acelaşi lucra este atunci adevărat şi pentru configuraţiile Q, xσ şi Q ˆ, xσ. Pe de altă parte, lungimea lui xσ este k +, ceea ce contrazice ipoteza că Q şi ˆQ sunt ( k + ) -congruente. Q.E.D. Când k = împărţirea stărilor în clase -congruente este simplă. Se observă că două stări sunt -congruente dacă şi numai dacă fie că sunt amândouă acceptate sau fie că amândouă sunt neacceptate. Astfel, pentru () k =, există două clase de echivalenţă: G toate stările neacceptate şi () G toate stările acceptate. Algoritmul de împărţire a stărilor în clase de - echivalenţe va opera în felul următor. Mai întâi se împart stările din M () () în două grupuri G şi G clasele de echivalenţă pentru relaţia (am arătat adineauri ce sunt ele). Folosind lema.., fiecare dintre aceştia sunt împărţite în alte subgrupuri; partiţia rezultată formează clasa de echivalenţă pentru. Operaţia se repetă, până nu mai apar subdiviziuni. Descrierea formală exactă a algoritmului este următoarea.

Algoritm.. Maşină cu stări finite minimală. Input: O maşină cu stări finite M = {Q, Σ, Q, δ,f}. Output: O maşină cu stări finite K, cu cele mai puţine stări posibile, astfel încât LK ( ) = LM ( ). I. Construire de stări din K. Stările din K vor fi clase de echivalenţă a stărilor din M sub relaţia de echivalenţă. Aşadar, stările din K sunt mulţimile de stări G, G, K, G r din M astfel încât Q, Q să fie membrii din acelaşi G dacă şi numai dacă Q Q. Aceste clase se construiesc în felul următor. () (). Fie G mulţimea stărilor neacceptate şi G mulţimea tuturor stărilor acceptate din M.. Presupunem că mulţimile din M au fost împărţite în clase de echivalenţe G, G, K, G (.5) (k) (k) (k) m k cu relaţia. Pentru fiecare stare Q şi x Σ fie h ( Q, x ) clasa k k (k) G care conţine δ ( Q, x). Se împarte fiecare mulţime G din (k) i (.5) astfel. Două stări Q şi ˆQ din G (k) i vor aparţine aceleaşi i clase dacă şi numai dacă h ( Q, x) = h ( Qˆ, x), pentru fiecare x din k k Σ. Fie partiţia de stări din M obţinută G, G, K, G (.6) (k+) (k+) (k+) m k +

3. Dacă mulţimile din (.6) sunt identice cu cele din (.5), ne oprim. Am obţinut partiţionarea în clase de echivalenţă. Dacă în (.6) sunt mai multe clase decât în (.5), ne întoarcem la pasul. II. K are acelaşi alfabetul de intrare ca şi M, adică mulţimea Σ. III. Starea iniţială din K este clasa de echivalenţă care conţine starea iniţială Q din M. IV. Funcţia de tranziţie se defineşte pentru K astfel: Fie G, G, K, G (.7) r stările din K. Există clase de echivalenţe pentru acel k pentru care clasele de echivalenţă din (.6) sunt identice cu cele din (.5). Din construcţia părţii I rezultă că dacă Q şi ˆQ sunt în aceeaşi G i, atunci oricare ar fi x Σ. Astfel funcţia h ( Q, x) = h ( Qˆ, x), k k ( G, x) = h ( Q, x) pentru oricare Q G k este bine definită, independent de Q. (Observăm că ( G, x) este o clasă de echivalenţă, una din G -uri, deoarece hk ( Q, x ) este clasa de echivalenţă care conţine δ ( Q, x).) Luăm funcţia ca funcţie de tranziţie pentru K. V. O stare G este stare acceptată dacă şi numai dacă se compune din stări acceptate din M.

Vom ilustra algoritmul.. în exemplul următor. Exemplu.. Fie M maşina cu stări finite dată de diagrama din () figura.. Clasa G (a stărilor neacceptate) este { Q, Q, Q, Q3, Q4, Q6, Q7, Q 9}. Clasa (tuturor stărilor acceptate) G () este { Q5, Q 8}. Următoarea subdivizare se obţine cu ajutorul funcţiei h Q x () (, ) clasa i care conţine δ ( Q, x) = G. Figura.. Minimizarea unei maşini cu stări finite. () Astfel, pentru k = clasa G se împarte în două subclase () G = { Q, Q } şi G = { Q, Q, Q, Q, Q, Q }. () 3 4 6 7 9 () () Clasa G nu se împarte ( Q 5 şi Q 8 produc rânduri identice) şi devine G 3. Continuarea împărţirii este redată în de tabelul din figura.4. Am omis

(3) unele G -uri şi Q-uri, reţinând doar indicii relevanţi. ( G 3 este reprezentat ca 3 şi Q 5 ca 5.) Partea superioară lui Pas # al tabelei din figura.4. este identică cu tabelul figurii.3. În Pas 4# ( k = 3) nu sunt introduse subclase noi, astfel, clasele de echivalenţă din M, deci stările din K, sunt G = { Q}, = Q G { }, G 3 = { Q}, G 4 = { Q3, Q4, Q6, Q7, Q9}, G 5 = { Q5, Q8}. Starea iniţială din K este G şi starea finală este G 5. Funcţia de tranziţie este dată de funcţia h 3 în tabelul din figura.4. De exemplu, ( G4, a) = G4 deoarece h3( Q3, a) h3( Q4, a) h3( Q6, a) h3( Q7, a) h3( Q9, a) 4 = = = = =G. În exact acelaşi mod se obţine ( G5, b) = G 4 cu h 3 ( Q 5, b) = h 3 ( Q 8, b) =G 4. În final, diagrama de tranziţie pentru K este dată în figura.5. () G Q h h ( Q, a) h ( Q, b) Q () G () G Q () G () G Q () G () G () G Q 3 Q 4 () G () G () G () G Q 6 () G () G Q 7 () G () G Q 9 () G () G () G Q 5 Q 8 () G () G () G () G Figura.3. Primul pas din algoritmul..

Rândurile pentru Q şi Q sunt distincte, deci Q şi Q vor aparţine () diferitor clase G. Pentru Q şi Q 3 ele sunt identice, deci aparţin aceleaşi () clase G. () G Q a h h h h3 () () (3) b G Q a b G Q a b G Q a 3 4 3 5 3 3 4 4 5 3 3 4 3 3 3 3 3 3 4 4 4 4 4 3 3 4 4 4 6 6 3 6 3 3 4 6 4 4 7 7 7 3 3 7 4 4 9 9 9 3 3 b 9 4 4 5 5 5 3 3 5 4 4 3 4 5 8 8 8 3 3 8 4 4 Pas # Pas # Pas #3 Pas #4 k = k = k = k = 3 Figura.4. Algoritmul.. complet. Figura.5. Maşină minimizată.

corect. Încheiem acest paragraf prin a arăta că algoritmul.. funcţionează Teorema.6. Fie M şi K maşinile cu stări finite deterministe din algoritmul.. Atunci LK ( ) = LM ( ). Mai mult, dacă K este o MSFD astfel încât LK ( ) = LM ( ) atunci numărul de stări din K este cel puţin egal cu numărul de stări din K. Demonstraţie. Fie Q şi ˆQ două stări din M şi fie G şi ˆ G două stări din K astfel încât Q G şi Q ˆ G ˆ. Din construcţia lui K rezultă că pentru oricare x Σ Dacă δ ( Q, x) = Qˆ atunci ( G, x) = G ˆ (.8) Fie acum σ = xx K xp un şir acceptat de M. Secvenţa de mişcări efectuate de M la input-ul σ este x x x3 xp Q Q Q L Q (.9) i i ip unde Q este stare acceptată în M. Fie i p i, i, K, i p G G G stările din K astfel încât Qi G j i. Din (.8) rezultă că secvenţa de mişcări din K este j x x x3 xp G G G L G (.) i i ip

Deoarece Qi G p i, starea G p i p este stare acceptată în K, deci σ LK ( ). Reciproc, dacă σ nu este în LM ( ) atunci starea Q din (.9) nu este i p stare finală în M, şi din nou, deoarece Qi G p i, starea G p i p nu este stare finală în K, deci σ LK ( ). Ca urmare LK ( ) = LM ( ). Pentru a arăta că maşina K are minimul de stări, procedăm în felul următor. Fie K o maşină cu stări finite deterministă cu mai puţine stări decât K. Vom arăta că LK ( ) LM ( ) = LK ( ). Toate stările din M fiind accesibile, şi stările din K vor fi de asemenea toate accesibile. Astfel, pentru fiecare G din K există un şir σ = σ( G ) astfel încât G, σ G, λ. Fie P starea iniţială din K, şi considerăm mişcările din K la input-ul σ ( G ) pentru toate stările posibile G din K. Pentru fiecare astfel de G maşină K se va opri într-o configuraţie P( G ), λ pentru o stare oarecare P( G ) din K. Deoarece K are mai puţine stări decât K, vor exista două stări diferite din K, fie ele G ' şi P( G ) = P( G ). Cu alte '' ' '' G, astfel încât ' ' '' '' cuvinte, există două şiruri diferite σ = σ( G ) şi σ = σ( G ) astfel încât '. La input-ul σ şi P.. La input-ul σ ' şi ' '' diferite G şi G. '' σ maşina K se mişcă din P în aceeaşi stare '' σ maşina K se mişcă din G în două stări Fie ' ' Q o stare din M conţinută în G şi fie '' Q o stare din M conţinută în '' G. Având G ' G '' ', stările Q şi '' Q nu sunt congruente. Deci pentru un input τ, maşina M va trece din Q ' în Q şi din Q '' în Q unde una din stările Q şi Q este acceptată iar cealaltă nu. Aceasta implică că unul din şirurile ' στ şi '' στ este în LM ( ) iar celălalt nu. Să vedem ce se întâmplă

' când aceste şiruri sunt introduse în maşina K. La input-ul στ maşina K trece din configuraţia ' P, στ în, P τ. La fel, cu input-ul '' στ maşina K trece din '' P, στ în aceeaşi configuraţie, P τ iar apoi continuă până se epuizează şirul τ. Aşadar, K trebuie să accepte fie ambele şiruri '' στ fie să le respingă pe amândouă. Ca urmare LK ' στ şi ( ) LM ( ), deoarece prin construcţie, maşina LM ( ) acceptă doar unul dintre aceste şiruri. Q.E.D..6. MAŞINI CU STĂRI FINITE BIDIRECŢIONALE Există o variantă modificată a conceptului de maşină cu stări finite, după cum vom vedea în continuare. Ne reamintim, că la definirea automatelor finite a fost precizat faptul, că dacă maşina citeşte un simbol x şi se află într-o stare Q, ea va trece în starea δ ( Q, x) şi va deplasează capul de citire cu un simbol spre dreapta. Presupunem acum că permitem capului de citire să efectueze mişcări la dreapta şi la stânga sau deloc. Astfel, dacă maşina se află în starea Q şi simbolul de intrare este x, ea poate efectua următoarele: '. Schimbă starea în Q şi mişcă capul de citire la dreapta. '. Schimbă starea în Q şi mişcă capul de citire la stânga. ' 3. Schimbă starea în Q şi nu mişcă poziţia capului de citire. Decizia luată se bazează pe starea curentă şi simbolul de intrare, şi este independent de stările/input-urile precedente. Valoarea funcţiei de tranziţie pentru aceste maşini va fi perechea:

' ' δ ( Q, x) = ( Q, R) sau ( Q, L ) sau ' ( Q, S) Dacă ' ' δ ( Q, x) = ( Q, R), maşina trece în starea Q şi mişcă capul de citire cu un simbol la dreapta; când ' δ ( Q, x) = ( Q, L), maşina trece în starea Q ' şi mişcă capul de citire cu un simbol la stânga; când ' δ ( Q, x) = ( Q, S), capul de citire nu se mişcă deloc şi simbolul de intrare x este recitit. Formal avem: Definiţia.8. O maşină cu stări finite deterministă bilaterală M se compune din următoarele cinci obiecte:. O mulţime finită, nevidă Q = { Q, Q, K, Q n }. Elementele din Q se numesc stări.. O mulţime finită, nevidă Σ= { a, a, K, a n } de simboluri admise în şirul de intrare. Mulţimea Σ se numeşte alfabet pentru M. 3. O stare desemnată Q Q, numită stare iniţială. 4. O funcţie de tranziţie δ ( Q, x) definită pentru toate stările Q Q şi toţi x Σ. Pentru fiecare Q Q şi x Σ valoarea δ ( Q, x) este o pereche ' ( Q, Z ), unde ' Q este altă stare din Q şi Z este unul din simbolurile R, L sau S. 5. O mulţime nevidă F de stări din Q. Elementele lui F se numesc stări finale sau acceptate. O maşină cu stări finite de genul celei descrise mai sus va fi un cvintuplu M = {Q, Σ, Q, δ,f} şi se notează MSFD.

Exemplu.. Fie M o MSFD cu patru stări Q (starea iniţială), Q, Q şi Q 3 ; cu alfabetul de intrare Σ= {, abc,}; cu o stare finală Q 3 ; şi cu funcţia de tranziţie dată de tabelul din figura.6. S t ă r i Q Q Q Q3 Input curent a b C ( Q, R) ( Q, R) ( Q, R) ( Q, R) ( Q3, L) ( Q, L) ( Q, R) ( Q, R) ( Q, S) ( Q, L) ( Q3, L) ( Q, S) Figura.6. O maşină cu stări finite deterministă bilaterală. Pentru a facilita descrierea mişcărilor unei MSFD avem nevoie de o metodă de descriere a configuraţie maşinii în orice moment dat. Deoarece capul de citire se poate deplasa la stânga cât şi la dreapta, trebuie să cunoaştem conţinutul şirului din dreapta capului de citire, ca şi din stânga. Deci, o configuraţie a unei MSFD va fi un triplet σ, Q, τ, unde σ este şirul de intrare din stânga capului de citire, Q este starea curentă şi τ este şirul de intrare din dreapta capului de citire presupunem că capul de citire se află poziţionat pe primul simbol din τ. Întregul şir de intrare este στ. σ şi τ pot fi şirul vid λ : Dacă σ = λ, şirul de intrare este pe simbolul cel mai din stâng a şirului de intrare, iar τ = λ înseamnă că întregul şir de intrare a fost citit. Figura.7. arată această configuraţie a maşinii.

Şir de intrare Figura.7. O MSFD în configuraţia aa Kak, Q, ak K ap. + Mişcările posibile ale maşinii M sunt akakak+, P, ak+ Kap dacă δ ( Q, ak+ ) = ( P, R) aa Kak, Q, ak+ Kap akak, P, akkap dacă δ ( Q, ak+ ) = ( P, L) akak, P, ak+ Kak dacă δ ( Q, ak+ ) = ( P, S) Maşina porneşte, ca de obicei, în configuraţia λ, Q, aa K ak. Pot apărea următoarele situaţii:. Maşina citeşte şirul de intrare σ în întregime şi ajunge în configuraţia σ, Q, λ, unde Q este o stare oarecare. În acest caz spunem că M s-a oprit. De pildă, maşina M din exemplul.. va trece prin următoarea secvenţă de mişcări având ca input σ = aabcac :

λ, Q, aabcac a, Q, abcac a, Q, bcac aab, Q, cac aabc, Q, ac aabca, Q, c aabcac, Q, λ se opreşte. Maşina ajunge în configuraţia λ, Qa, K şi δ ( Qa, ) = ( Q', L), capul de citire citeşte cel mai din stânga simbol al şirul de intrare şi instrucţiunile cer mutarea capului de citire la stânga. În acest caz vom spune că maşina s-a blocat. De pildă, la input-ul exemplul.. va avea următoarea secvenţă de mişcare: σ = abbbca, maşina din λ, Q, abbca a, Q, bbca ab, Q, bca a, Q, bbca λ, Q, abbca se suspendă 3 3 3. Maşina intră într-un ciclu infinit. De pildă, la input-ul σ = abccab, mişcările maşinii M din exemplul.. sunt: λ, Q, abccab a, Q, bccab ab, Q, ccab abc, Q, cab ab, Q, ccab intră în ciclu Definim limbajul acceptat sau generat de o MSFD M ca fiind o mulţime de şiruri σ pentru care maşina M, pornită în configuraţia λ, Q, σ, se va opri în configuraţia σ, Q, λ, unde Q F. Formal avem ( ) = { σ Σ λ,, σ σ,, λ, F} LM Q Q Q

Ca urmare, dacă M este maşina din exemplul., aabcac L( M ), dar abccab şi abbbca nu aparţin lui LM ( ). Maşinile cu stări finite obişnuite pot fi văzute ca cazuri particulare ale maşinilor bidirecţionale: δ ( Qa, ) ( Q', L) sau ( Q', S ) în acest caz. Este de aşteptat ca clasa limbajelor generate de MSFD să fie mai mare decât clasa generată de MSF obişnuite. Surprinzător, acesta nu este cazul. Avem următoarea teoremă: Teorema.7. Fie M = {Q, Σ, Q, δ, F} o MSFD. Atunci există o MSF deterministă K astfel încât LM ( ) = LK ( ). Demonstraţie. Vom demonstra această teoremă sub ipoteza suplimentară că maşina deplasează capul de citire ori la stânga ori la dreapta, δ ( Q, x) ( Q', S). Aceasta o face pentru simplificarea expresiei; demonstraţia pe cazul general se bazează pe aceeaşi idee. Fie Q, Q, K, Qn stările din M şi fie D un simbol nefolosit din M. Pentru fiecare şir σ Σ definim două funcţii φ ( Q) şi ψ ( Q, x) în felul următor. Dacă Q este o stare, definim φ ( Q) ca fiind starea P, astfel încât maşina M pornită în configuraţia λ, Q, σ, se va opri în configuraţia σ, P, λ. Aceasta înseamnă că M va citi toate simbolurile din σ şi se opreşte în starea P. Dacă nu există un astfel de P, avem φ ( Q) = D. Ceea ce va avea loc dacă, de exemplu, maşina M pornită cu input-ul σ, va trece într-o buclă infinită, sau dacă se blochează. De pildă, în maşina exemplului.. avem φ ( Q cac ) = Q deoarece σ σ σ σ λ, Q, cac c, Q, ac ca, Q, c cac, Q, λ se opreşte

Pe de altă parte, φ ( Q bca ) = D fiindcă λ, Q, bca λ, Q, bca se blochează 3 Formal avem φ :Q Q { D} dată prin σ φ ( ) P dacă, Q,, P, σ Q = λ σ σ λ D dacă nu există un astfel de P Funcţia ψ σ are două argumente o starea Q şi un simbol x Σ şi se defineşte astfel: Alegem ψ ( Q, x) ca fiind starea P astfel încât maşina M, σ pornită în configuraţia σ, Q, x va trece în configuraţia σ, P, x în aşa mod încât să nu existe R astfel încât σ, Q, x σ, R, x σ, P, x Cu alte cuvinte, ψ ( Q, x) este definită a fi prima stare P astfel încât, dacă M este pornită în configuraţia σ, Q, x σ, capul de citire a maşinii M se mută la stânga şi rămâne în σ până când ajunge în configuraţia σ, P, x. Dacă nu există o astfel de stare, punem ψ ( Q, x) = D. Referindu-ne la exemplul.. avem ψ ( Q bca 3, a ) = Q deoarece σ bca, Q, a bc, Q, aa bca, Q, a 3 Formal, avem ψ :Q Σ Q { D} dată prin σ

+ P dacă σ, Q, x σ, P, x, dar nu există R P ψσ ( Q, x) = astfel încât σ, Q, x σ, R, x σ, P, x D dacă nu există un astfel de P În definiţia anterioară, notaţia σ, Q, x σ, P, x înseamnă, că între configuraţii, maşina execută un număr pozitiv de mişcări. Important de reţinut despre funcţia ψ este: dacă ψ = ( Q, x) = P, adică M porneşte în configuraţia σ, Q, x σ +, capul de citire se deplasează la dreapta şi rămâne în σ până când se ajunge în configuraţia σ, P, x. Observăm că există doar un număr finit de funcţii ψ şi φ, deoarece mulţimile Q şi Σ sunt finite. Deci vor exista mai multe perechi σ şi σ în Σ astfel încât ψσ Q x ψ σ (, ) = ( Q, x) şi φσ ( Q) = φ ( Q) σ pentru orice Q Q şi x Σ. Două astfel de şiruri se numesc echivalente şi notăm aceasta σ σ. Evident, relaţia este o relaţie de echivalenţă. Deoarece există un număr finit de funcţii ψ şi φ, avem şi un număr finit de clase de echivalenţă ale acestei relaţii. Relaţia de echivalenţă Presupunem σ σ. Atunci pentru oricare τ, are în plus următoarea proprietate: στ LM ( ) dacă şi numai dacă στ LM ( ) (.) Fie τ dat şi presupunem că στ LM ( ); vream să demonstrăm că στ este tot în LM ( ). Vom presupune τ λ, în caz contrar concluzia este evidentă. Fie τ = xτ şi considerăm mişcările maşinii M la input-ul σ xτ, în

particular, fie P starea din M când capul de citire ajunge prima dată la simbolul x primul simbol din τ : λ, Q, σ xτ σ, P, xτ şi în timpul tranziţie între aceste configuraţii capul de citire rămâne în σ. Dar aceasta înseamnă că P = φ σ ( Q ), şi fiindcă şirurile σ şi σ sunt echivalente, P este de asemenea starea maşinii M când capul ei de citire ajunge prima dată la x (pornind din configuraţia λ, Q, στ ). Astfel, la input-urile σxτ şi σx τ mişcările iniţiale ale maşinii M sunt λ, Q, σ xτ σ, P, xτ λ, Q, σ xτ σ, P, xτ (.) şi în cursul configuraţiilor intermediare, capul de citire rămâne în σ, respectiv σ. Fie P, P, K, Pk stările maşinii M corespunzătoare momentelor consecutive când capul de citire punctează pe x primul simbol din τ. (Urmărim în continuare mişcările din M la input-ul στ). Cu alte cuvinte, fie P, P, K, Pk stări astfel încât σ, P, xτ σ, P, xτ L σ, P, xτ L (.3) k unde mişcările din (.3) sunt de felul următor. Înaintea ca configuraţia σ, P, xτ să fie ajunsă, capul maşinii M punctează în interiorul şirului σ.. Între configuraţiile σ, Pj, xτ şi σ, Pj +, xτ capul de citire punctează ori numai în σ ori numai în xτ.

3. După configuraţia σ, Pk, xτ capul de citire este numai în xτ. Din definiţia funcţie ψ şi din faptul că σ σ rezultă, că mişcările maşinii M la input-ul σ şi configuraţia σ, P, xτ sunt σ, P, xτ σ, P, xτ L σ, P, xτ L (.4) k Considerăm mişcările executate de M începând cu prima configuraţie din (.4). Dacă capul se deplasează la dreapta, mişcările vor fi identice cu cele ale maşinii M pornite în prima configuraţie din (.3). Aşadar, după ce capul de citire se întoarce la x, M va fi în configuraţia σ, P, xτ. Dacă, pe de altă parte, capul de citire se deplasează la stânga atunci, deoarece P = ψ σ ( P, x) şi σ este echivalent cu σ, data următoare când capul de citire întâlneşte x, M trece în starea P. Procedând la fel cu stările P şi P 3 în loc de P, P etc., observăm că (.4) este valabil. După ce M ajunge în ultima configuraţie din (.4), procedează ca şi când ar începe cu ultima configuraţie din (.3); cu alte cuvinte, acceptă στ. Dat fiind faptul că rolul lui σ şi σ, din această discuţie, a fost simetric, ajungem la concluzia că (.) este adevărat. În final, putem construi maşina K. Alfabetul de intrare este identic cu alfabetul din M. Stările corespund claselor de echivalenţă a relaţiei. Dacă σ este un şir oarecare din Σ, atunci σ denotă clasa de echivalenţă care-l conţine pe σ. Simbolul de start va fi λ clasă de echivalenţă care conţine şirul vid. Ca stări acceptate pentru K sunt luate acele clase de echivalenţă în a căror componenţă intră doar şiruri din LM ( ). (Se arată

uşor că dacă σ σ atunci, ori σ, σ sunt în LM ( ), ori amândoi nu sunt în LM ( )). Funcţia de tranziţie din K se defineşte în modul următor: ( σ, x) = σx (.5) Aceasta înseamnă că σ este o clasă de echivalenţă (o stare din K), şi x este simbolul de intrare curent, atunci următoarea stare pentru K este clasa de echivalenţă conţinând σ x. Evident, K este o maşină cu stări finite deterministă, a cărei cap de citire se deplasează doar la dreapta. Utilizând proprietatea (.), este uşor de arătat că LM ( ) = LK ( ). Q.E.D. PROBLEME Construiţi pentru fiecare din problemele 9 o maşină cu stări finite deterministă care acceptă limbajul dat.. Mulţimea şirurilor de -uri şi -uri de lungime cel mult 5.. Mulţimea de şiruri din {, ab } având un număr par de b-uri. 3. Mulţimea de şiruri formate din a-uri şi b-uri având aa şi bb ca subşiruri. 4. Limbajul tuturor constantelor întregi cu şi fără semn. Deci, +345, -345 şi 345 aparţin toate limbajului. 5. Limbajul şirurilor peste {, } care nu conţin subşirul. 6. Limbajul L {, a b} şirurilor cu număr par de a-uri şi impar de b-uri. 7. Mulţimea şirurilor de -uri şi -uri care încep cu şi nu mai conţin şirul. Deci, este în limbaj, dar nu.

8. Limbajul şirurilor formate din şi în care subşirul apare cel puţin de trei ori. 9. Mulţimea de şiruri din {, ab } în care nici aa nici bb apar ca subşir. Construiţi pentru problemele 4 o maşină cu stări finite care acceptă limbajul generat de gramatica indicată. Maşina nu trebuie să fie deterministă.. S as bs b λ. S A B, A C A, B B A, C A. S aa ab, A aa bs, B b ba 3. S as bb λ, B aa b, A as abâ 4. S as bs ca, A cb, B cc, C ac bc λ 5. Construiţi o maşină cu stări finite deterministă care acceptă fiecare din limbajele generate în problemele 4. 6. Pentru fiecare maşină din figura.8. construiţi o maşină echivalentă deterministă. Figura.8. Maşini cu stări finite nedeterministe.