Sunteți pe pagina 1din 2

Automate finite s, i expresii regulate

29 februarie 2016

Probleme cu automate finite s, i expresii regulate


Exercit, iu Construit, i un automat determinist care accept toate s, irurile de a s, i b n care dac apare
bb, pn atunci nu a aprut aa.
Rat, ionm astfel: orice s, ir care nu cont, ine aa e bun, dar dac apare aa, mai trziu nu poate s mai
apar bb, altfel nu respect condit, ia cerut. Deci construim nti un automat care recunoas, te s, irurile
n care nu apare aa: orice s, ir care se termin nainte de a fi aprut aa e acceptat.
b
Dup orice a, n s, ir trebuie s apar b pentru a putea continua. Sau,
altfel exprimat, numrm ct, i a consecutivi am avut imediat nainte de
s0 a s1 a s2
starea curent: 0 n starea s0 , unul n starea s1 . Deci cu orice b se revine
n s0 . Din s2 ns (doi a consecutivi), automatul nu mai accept nimic.
b
Completm acum acest automat ca odat ce a vzut aa (din s2 ), s nu mai permit bb. Rolurile se
inverseaz acum, dup orice b, n s, ir trebuie s urmeze un a ca s respecte n continuare condit, iile:
a, b
b
a
b
a
s0

s1

s2

s3

s0

s1

s2

s3

s4

a
a
b
b
Toate strile din automat sunt acceptoare: oriunde s-ar opri s, irul, el satisface condit, iile din enunt, .
Nu exist tranzit, ie pe b din s3 : implicit, un astfel de s, ir nu e acceptat. Pentru a respecta riguros
condit, ia ca orice stare s aib tranzit, ie pe orice simbol, putem introduce explicit starea neacceptoare
s4 n care odat ajuns, automatul rmne indiferent de intrare.
O alt solut, ie e s definim nti un automat pentru s, irurile care nu respect condit, ia din enunt, :
putem construi simplu un automat nedeterminist care accept dac nti vede aa, s, i mai trziu, bb:
a, b
a, b
a, b
La nceput, ntre aa s, i bb, precum s, i la sfrs, it,
s, irul poate cont, ine orice combinat, ii de a s, i b.
Apoi determinizm acest automat (care accept toate s, irurile nedorite) s, i obt, inem complementul
lui (s, irurile dorite), schimbnd fiecare stare din acceptoare n neacceptoare s, i reciproc. Verificat, i c
obt, inet, i un automat determinist echivalent celui construit direct mai sus.
s0

s1

s2

s3

s4

Erori frecvente
Un automat recunoas, te (accept) s, iruri de un anumit fel. Dac nu marcm stri ca fiind acceptoare,
nu va accepta nimic. Nu exist stare acceptoare implicit (de exemplu ultima nu exist ultima
ntr-un automat cu cicluri). Nici nu trebuie s fie unic definit, ia are o mult, ime de stri acceptoare.
Un automat consum pe fiecare tranzit, ie un singur simbol. Deci o tranzit, ie nu poate fi etichetat
cu ab, sunt necesare dou tranzit, ii, cu o stare intermediar.
Un automat cu o stare care pentru acelas, i simbol are dou tranzit, ii nu e determinist, deci nu e bun
dac se cere un automat determinist. (Dac a fost ns gndit bine, poate fi determinizat).
Un automat cu o tranzit, ie n bucl revenind n aceeas, i stare pentru toate simbolurile alfabetului
(ca s0 n ultima figur) poate consuma orice s, ir rmnnd n acea stare. ntr-un automat determinist,
avnd deja tranzit, ii pe toate simbolurile, ea nu poate avea nici tranzit, ii spre alte stri. Deci nu are
sens dect eventual ca ultim stare acceptoare sau de eroare.
Discut, ie E util s distingem cteva clase tipice de s, iruri bune (acceptate). Putem avea cazurile:
odat ce un s, ir a devenit bun, el rmne acceptat, de exemplu, s, irurile care cont, in un anumit tipar:
odat tiparul gsit, poate urma orice
odat ce un s, ir nu e bun, nu mai poate fi acceptat, cum ar fi s, irurile care nu cont, in un anumit tipar:
odat ce tiparul apare, poate urma orice, dar s, irul nu mai poate fi acceptat
putem avea o alternant, de stri acceptoare s, i neacceptoare, cum ar fi s, iruri cu un numr par de 1:
fiecare 1 citit trece automatul dintr-o stare acceptoare ntr-una neacceptoare s, i invers.
Odat ce am scris un automat, e util s l parcurgem pentru a vedea cteva s, iruri acceptate, cu
mare atent, ie la cicluri: combinnd cicluri putem obt, ine situat, ii care poate ne-au scpat init, ial.

Logic s, i structuri discrete. Note de curs

Marius Minea

Automate finite s, i expresii regulate

29 februarie 2016

Exercit, iu Scriet, i o expresie regulat pentru s, irurile de a s, i b n care orice ab e urmat imediat de a.
Notm cu | alternativa. Precedent, a cea mai mare o are , urmat de concatenare s, i alternativ.
Putem gndi solut, ia n mai multe feluri, dar oricum trebuie s exprimm cum arat s, irurile odat
ce a aprut ab. Orice ab trebuie urmat de a. n particular, ar putea fi urmat de nc un ab (urmat la
rndul su de a), dar putem avea s, i orict, i a ntre doi ab consecutivi. Ajungem la expresia regulat
(ab|a) . Dac se termin cu ab, ea trebuie urmat de a; e valabil ns s, i s, irul vid: |(ab|a) a.
nainte de port, iunea unde se poate repeta ab, putem avea orict, i b urmat, i de orict, i a; dup aceast
port, iune (deci cnd nu mai apare b) putem ncheia cu orict, i a. Repetit, ia de a e ns deja inclus n
expresia gsit. E suficient s completm deci: b (|(ab|a) a).
Putem gndi s, i as, a: odat ce a aprut primul a, nu mai putem avea bb, ci doar ba. Ajungem la
(a|ba) . Din nou, aceasta include orict, i a dorim, la nceput s, i sfrs, it. E suficient deci s adugm
orict, i b init, ial: b (a|ba) .
O alt variant, poate mai laborioas dar mai sigur e s construim nti un automat.
b
a
Init, ial, avem un s, ir de b care nu introduce constrngeri. Apoi, orice b
a
b
din s1 nseamn c a fost precedat de un a, deci trebuie urmat de un a,
s0
s1
s2
revenind n aceeas, i stare.
a
b
a
Pentru a obt, ine expresia regulat, vedem us, or c putem elimina starea intermediar neacceptoare s2 . Obt, inem:
s0 a s1
ba
Cum ambele stri rmase sunt acceptoare, limbajul devine b (|a(a|ba) ).
Remarcnd c a din fat, a parantezei interioare poate fi generat s, i din repetit, ie,
iar apoi  la fel, ajungem la aceeas, i form simplificat, b (a|ba) . Putem vedea
mai bine simplificarea remarcnd c nlocuind a cu  pe tranzit, ia s0 s1
obt, inem acelas, i efect, s, i  e element neutru (nu conteaz) la concatenare.

b
s0

a


s1

ba

Erori frecvente
Expresia regulat (a|b) poate genera orice s, ir de a s, i b. Ca s, i la automate, dac vrem s generm
s, iruri care nu cont, in un tipar, nu putem avea (a|b) ca subexpresie, pentru c poate genera orice,
inclusiv tiparul nedorit.
Des, i expresiile regulate sunt echivalente cu automatele, dac problema cere o expresie regulat,
aceasta e ceea ce trebuie s dm ca solut, ie.
Discut, ie
Cele dou reprezentri din dreapta nu sunt automate (nici deterministe nici nedeterministe) dup
definit, ia dat, pentru c acestea nu pot avea s, iruri arbitrare pe tranzit, ii, ci doar cte singur simbol.
Pot fi ns reprezentri informale utile pentru transformrile prin care obt, inem o expresie regulat.

Logic s, i structuri discrete. Note de curs

Marius Minea