Documente Academic
Documente Profesional
Documente Cultură
29 februarie 2016
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.
Marius Minea
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.
Marius Minea