Documente Academic
Documente Profesional
Documente Cultură
, 0 ) = {
sau starea
, poate
tranzita la strile
are
tranziii etichetate cu 1 i la starea
i la starea
.
1.1. Definiie
Se numete automat finit non-determinist (AFN) un 5uplu
A=(S, , ,
, F)
unde :
y S este o mulime nevid finit, mulimea strilor automatului;
y este o mulime nevid finit, alfabetul de intrare;
y s S 0 este un element distins din S numit stare iniial;
y F S este mulimea strilor finale;
y : S P (S) este funcia de tranziie (non-determinist).
Pentru exemplul dat anterior, funcia de tranziie, descris tabelar, este:
0 1
} {
}
S ne reamintim c, atunci cnd am vorbit despre limbajul recunoscut de un automat finit
determinist, am avut nevoie de prelungirea funciei de tranziie la cuvinte peste alfabetul de
intrare, pe care am notat-o cu aceeai liter, ns :S * S.
ntr-un automat determinist complet, pornind din starea iniial, orice cuvnt w *,
poate fi gndit ca traversnd o secven (drum) unic de stri ale automatului.
ntr-un automat non-determinist, aceast secven poate s nu mai fie unic: pot exista
mai multe iruri de stri care s corespund unui singur cuvnt w.
1.2. Exemplu
Considerm automatul non-determinist avnd urmtorul graf de tranziie:
Pentru cuvntul w = 010 peste alfabetul de intrare {0,1}, arborele descrie urmtoarele
calcule posibile:
y 5 drumuri posibile indexate cu w;
y 3 drumuri care accept cuvntul w (se termin ntr-o stare final q2);
y 2 drumuri care resping cuvntul w (ntruct se termin ntr-o stare ne-final q1);
i atunci apare ntrebarea: Este 010 acceptat sau nu?
Din punct de vedere informal, faptul c w * este acceptat de automatul finit
nondeterminist A se poate descrie astfel: w este acceptat de A dac exist mcar un drum n
graful de tranziie al lui A care s fie etichetat cu w i sa se termine ntr-o stare final q F.
1.3. Definiia limbajului recunoscut de un AFND
Fie A=(S, , ,
, w) F }.
n cele ce urmeaz vom ncerca s demonstrm c, din punct de vedere al limbajului
acceptat, nu se ctig nimic (n sensul c nu exist limbaje acceptate de un AFN care s nu fie
acceptate de un AFD).
1.4. Teorem
Pentru orice automat finit non-determinist A=(S, , ,
= (
, ,
= (
, ,
) astfel nct
L(
) = L(
).
Ideea este de a asocia unei singure stri din S
d
o anumit submulime de stri din S
nd
. Mai
precis, dac R
, w) = R.
Odat ce am definit toate strile din
astfel:
pentru orice stare
.
Atunci vom pune
, a)=
unde
i corespunde lui
, w)=
T=
w
. Demonstraia se obine uor, utiliznd inducia dup lungimea cuvntului w.
2. Expresii regulate
n seciunile precedente, am definit limbaje care sunt recunoscute (acceptate) de automate
finite (non-)deterministe i am constatat c AFN-urile au aceeai putere de acceptare cu a
AFD-urilor.
Aceste limbaje sunt uor de implementat n programe pe calculator. Totui, nu este
(ntotdeauna) convenabil s le specificm ca secvene (drumuri) n graful de tranziie al unui
automat finit. De exemplu, cnd vrem s gsim drumul (ruta) pe care a fost acceptat un cuvnt
din limbaj sau atunci cnd declarm simboluri pentru anumii identificatori, este prea complex
definirea unui automat finit n acest scop.
Atunci, este mai bine s alegem o expresie n form secvenial, definit succint i uor
de neles. Astfel de instrumente se numesc expresii regulate i au fost introduse pentru prima
dat de Kleene*. n practic, expresiile regulate sunt foarte des utilizate ca interfee utilizator
pentru a specifica limbajele regulate. n schimb, automatele finite se folosesc mai uor ca
reprezentri interne pe calculator pentru stocarea limbajelor regulate.
2.1. Teorem
O expresie regulat e peste un alfabet i limbajul L generat de aceasta se definesc
inductiv prin:
(1) e = este o expresie regulat care genereaz L = .
(2) e = este o expresie regulat care genereaz L = {}.
(3) e = a, cu a , este o expresie regulat care genereaz L = {a}.
Fie
.
(5) e = (
..
(6) e =
))*.
Presupunem c operaia * are ntietate fa de i +, iar are ntietate fa de +.
Perechile de paranteze se pot omite atunci cnd nu creaz confuzie. De asemenea,
omitem, de obicei, simbolul n expresiile regulate.
Exemple:
1. Fie = {a,b,c} i L * mulimea cuvintelor care conin abcc ca subcuvnt. Atunci L
poate fi generat de expresia regulat (a+ b+ c)*abcc(a+ b+ c)*.
2. Fie L {0,1}* mulimea tuturor cuvintelor care nu conin dou simboluri 1
consecutive. Atunci L este generat de (10 + 0)*(1 + ).
Spunem c dou expresii regulate sunt echivalente (notm
) peste dac
genereaz acelai limbaj.
Din modul de definire al limbajelor generate de expresiile regulate, este evident c
familia limbajelor generate de expresiile regulate coincide cu familia Reg () a limbajelor
regulate peste alfabetul (vezi i Cap.I, 3). S.C.Kleene a demonstrat n lucrarea sa c aceast
familie este egal cu familia limbajelor acceptate de AFD, adic expresiile regulate sunt
echivalente cu automatele finite, n ceea ce privete limbajele. Exist numeroi algoritmi de
transformare a expresiilor regulate n automate finite i invers.
Exist trei metode majore de transformare a unei expresii regulate ntr-un automat finit.
Prima dintre ele a fost elaborat de Thompson i const n transformarea unei expresii regulate
ntr-un AFN cu tranziii vide (tranziii etichetate cu , numite i tranziii spontane, adic
automatul poate trece dintr-o stare n alta (aparent) fr a introduce un simbol de intrare); metoda
este simpl i intuitiv, dar poate genera multe - tranziii iar automatul rezultat poate deveni
mult prea complex. n acest caz transformarea lui ntr-un AFD poate lua mult timp.
A doua metod a fost creat de Berry i Sethi i transform o expresie regulat ntr-un
AFN fr - tranziii; algoritmul se bazeaz pe teoria lui Brzozowski asupra derivarilor i pe
algoritmul de marcare al lui McNaughton i Yamada. Aceast a doua metod a fost mbuntit
apoi de Brggemann Klein . A treia metod este aceea de transformare a expresiei regulate
direct ntr-un AFD echivalent ; algoritmul const n: (1) transformarea unei expresii regulate ntr-
un AFN cu metodele de mai sus i (2) transformarea AFN n AFD.
n continuare, vom da o descriere succint a modului de transformare a unei expresii
regulate ntr-un AFN, urmnd-o pe aceea dat de A.Brggemann-Klein i D.Wood.
Fie e o expresie regulat peste . Inductiv, definim un AFN Me dup cum urmeaz:
(0)
=(
, ,
),
=(
, ,
) i
= .
= (S, , ,
, F), unde S=
),
uac s
altfel
Pentru s S i a ,
(s,a)=
=(S, , ,
, F). unde
y se face o copie a lui s
uac s
Pentru s S i a ,
(s,a)=
=(S, , ,
, F), unde
, F= F
,
Pentru s S i a ,
(s,a)=
Aceste AFN-uri se numesc automatele lui Glushkov, dup cel care le-a definit iniial. O
proprietate mai deosebit a acestora este c nu exist tranziii care s se ntoarc la starea iniial.
Observaie: O expresie regulat e se numete determinist dac Me este un AFD.
Teorem: Dac e este o expresie regulat peste , atunci L(e) = L(
).