Sunteți pe pagina 1din 13

Limbaje Formale i Automate

BREVIAR
Definiii
Un alfabet este o mulime finit de simboluri.
Un cuvnt este o secven finit de simboluri ale aceluiai alfabet.
Un limbaj este o mulime de cuvinte cu simboluri ale aceluiai alfabet.
Notaii:
Lungimea unui cuvnt, w reprezint numrul de simboluri care compun
cuvntul.
Cuvntul vid: (corespunde evenimentului nul sau, mai precis, unui eveniment
neobservabil).
Limbaj vid: (reprezint limbajul fr nici un cuvnt).

Evoluia oricrui SED poate fi reprezentat complet printr-o pereche de limbaje (L, Lm)
cu urmtoarele proprieti:
L i Lm sunt definite pe alfabetul de intrare;
L reprezint toate evoluiile posibile ale SED i se numete limbaj generat;
Lm reprezint toate evoluiile dorite ale SED i se numete limbaj marcat;
Lm L.
Operaii pe limbaje
Fie L, L1, L2, limbaje definite peste alfabetul . Cele mai utilizate operaii pe
limbaje sunt:
Reuniunea
L = L1 L2 ={ v| v L1 sau (i) v L2 }
Concatenarea
L = L1 L2 = {v | v = s t unde s L1 i t L2}
nchiderea iterativ (sau operatorul Kleene)
L = L*

*
L =
i 0
Li , Lk+1 = Lk L, L0 = {}

Observaie: Operaia de nchidere iterativ se poate extinde i la un alfabet


(considerat ca un limbaj cu cuvinte de lungime 1) : * reprezint mulimea tuturor
cuvintelor care pot fi formate cu simbolurile lui .
nchiderea prefixat
pr (L) = L = {s * | t L a.. sw = t}
Intersecia
L = L1 L2 = {v | v L1 i v L2}
Proiecia lui L peste o submulime de evenimente ^
L^= {s^ | s L} cu
, daca ^
() , ^
, altfel
( s ) , daca ^
() s , , s ^
s , altfel
Proprietate important: Limbajul generat de ctre un SED este ntotdeauna egal cu
nchiderea sa prefixata (L = pr(L)).
Definiie
Fie un alfabet; atunci o expresie regulat (ER) se definete astfel:
este o ER care modeleaz limbajul ce conine doar evenimentul nul;
este o ER care modeleaz limbajul vid;
() a , a este o ER care modeleaz limbajul reprezentat de {a}
dac a, b sunt ER, atunci (ab), (a + b), a*, b* sunt ER
Proprietate: Dac este ER, atunci : * = + *.

Definiie: Un automat finit determinist AFD se definete ca un quintuplu :


G = (Q, , q0 , , Qm)
unde:
Q = mulimea (finit) a strilor;
= alfabetul de evenimente,
q0 = starea iniial,
= funcia de tranziie ; : Q Q,
() q Q, a i w * sunt satisfcute urmtoarele relaii:
a) (q, ) = q
b) (q, wa) = ( (q, w), a) = q Q
Qm = mulimea strilor marcate.
Notaii:
stare;

starea iniial (unica !);

stare marcat;

a
tranziia sub evenimentul a.

Observaii :
1) Dac Qm , atunci automatul se numete acceptor.
2) Dou automate G1 si G2 sunt echivalente dac limbajele lor generate i respectiv
cele marcate, sunt egale:
G1 echivalent cu G2 L(G1) = L(G2) i Lm(G1) = Lm(G2)

Definiie : Un automat finit nedeterminist AFN se definete ca un quintuplu


G = (Q, , , q0, Qm)
unde singura diferen fa de AFD este dat de modul de definire al funciei de tranziie,
respectiv :
: Q 2Q cu 2Q - mulimea tuturor submulimilor lui Q.
i
(q, ) = q
(q, a) = {p| pQ}, ceea ce nseamn c, din starea q, prin evenimentul a, se poate
ajunge ntr-o mulime de stri (evoluia nu este unic).
Un cuvnt de intrare w * este acceptat de un AFN dac mcar una dintre evoluiile
(q0, w) Qm.
Pentru orice AFN G se poate construi un AFD echivalent G, numit observatorul lui G.
G = (Q, , , q0, QF),
Definiie : Un AFN cu tranziii (AFN- ) se definete ca un quintuplu G:
G = (Q, { }, q0 , , Qm).
Diferena fa de clasele de automate prezentate anterior este dat de modul de definire al
lui .
Pentru a defini funcia de tranziie a AFN- se introduce noiunea de nchidere a unei
stri q a automatului G (*G (q)) , astfel:
*G (q) = (q, *) ={q |q Q} - mulimea tuturor strilor n care se ajunge
pornind din q sub o secven de .
Atunci funcia de tranziie a unui AFN- se definete astfel:
: Q ( { }) 2Q ;

(q, ) = G* (q)
Pentru un cuvnt de intrare s ( { })* si ,

(q, s ) G* [ ( (q, s), )] G *
q"
q ' q , s q '' q ',
Ca i n cazul AFN, pentru orice AFN- se poate construi un observator determinist.

Algoritmul de construcie a unui observator determinist Gobs pentru un automat


nedeterminist general Gnd
Considernd c automatul determinist este definit ca:
Gobs = (Qobs, , obs, q0,obs, Qm,obs)
iar automatul nedeterminist ca:
Gnd = (Qnd, nd, nd, q0,nd, Qm,nd),
n care
, daca avem un AFN
nd
{}, daca avem un AFN -
i folosind (pentru a putea rezolva cu algoritmul construcia observatorului att pentru
AFN ct i pentru AFN-) urmtoarea funcie:
UR: 2Qnd nd 2Qnd
Cu definiia:
x, daca G nd este AFN
UR(x) *
G ( x), daca G nd este AFN -
algoritmul de construcie a observatorului pentru un automat nedeterminist este
urmtorul:
Pas 1 q0,obs = UR(q0,nd) i se introduce q0,obs n lista strilor neexplorate (LSN).
Pas 2 Atta timp ct exist stri n LSN:
Pas 2.1 Extragere a unei stri q din LSN.
Pas 2.2 Includere a strii q n mulimea Qobs. Dac qndqobs a. qndQm,nd atunci se
adaug qobs n Qm,obs.
Pas 2.3 Pentru fiecare eveniment end
Pas 2.3.1 Evaluare a strii qobs n care evolueaz qobs la apariia evenimentului e:
obs(qobs, e) = qobs=UR(nd (qobs, e))=
= UR( nd(qnd, e))
qnd qobs

Pas 2.3.2 Dac qobsQobs


Introducere a lui qobs n LSN.
Pas 2.4 ntoarcere la Pas 2.

Orice expresie regulat (ER) poate fi reprezentat printr-un AFN-, pe baza definiiei ER
i utiliznd urmtoarele operaii:
Fie r1 i r2 ER care pot fi exprimate prin AFN- , respectiv
M1 = (Q1, 1, q1, 1, {f1})
M2 = (Q2, 2 , q2, 2, {f2})
Atunci:
1. AFN- corespunztor reuniunii r = r1 + r2 este

q1 f1
M1
f
q0 1
f0
q f
0 0
q2 M2 f2
q f
2 2

Automatul M corespunztor lui r este


M = (Q1 Q2 {q0 , f0 }, 1 2 , , q0 , {f0} )
(q0 , ) = {q1 , q2 }
(q, a) = 1 (q, a) dac q Q1 \{ f1 }i a 1 { }
(q, a) = 2 (q, a) dac q Q2 \{f2 } i a 2 { }
(f1, ) = (f2, ) = {f0}
2. AFN- corespunztor concatenrii r = r1 r2 este


q1 M1 f1 q2 M2 f2
f q ff
1 2 20
M= (Q1 Q2 , 1 2 , , q1 , {f2})
(q, a) = 1 (q , a) dac q Q1 \ {f1} si a 1 { }
(q, a) = 2 (q , a) dac qQ2 i a 2 { }
({f1}, ) = {q2}

3. AFN- corespunztor operatorului Kleene r = r1* este


M=(Q1 {q0 , f0} , 1 {} , , q0 , {f0})
(q0 , ) = {q1 , f0}
(q , a) = 1 (q, a) pentru q Q1 \ {f1} i a 1
(f1 , ) = {q1 , f0}


q0 q1 M1 f1 f0
q f f
0 1 0

Teorem: Dac L este un limbaj acceptat de un automat finit determinist, atunci L poate
fi scris ca expresie regulat.

Expresia Regulat a limbajului acceptat de ctre automat este o reuniune


R
toate
n
1k
a
q k Q m

tuturor traiectoriilor care conduc de la starea iniial ctre o stare marcat.

n
Observaie: Rij reprezint toate traiectoriile de la qi la qj fr s treac printr-o stare cu
un numr mai mare dect n.
Definiii:
R ijk R ikk 1 (R kkk1 )* R kkj1 R ijk 1

{a | (q i , a) q j } daca i j
R ij0
{a | (q i , a) q j { }daca i j
Definiie: Fie dou Automate Finite (Deterministe)
G1 =( Q1 , 1 , 1 , 1 , q01 ,Qm1)
G2 =( Q2 , 2 , 2 , 2 , q02 ,Qm2)
Se numete compunere sincron a automatelor G1 i G2 notat G1 || G2 un automat G
care are strile G =(Q , , , q0, Qm) astfel:
Q = Q1 Q2
= 1 2
q0 = (q01 , q02)
Qm = Qm1 Qm2
Definirea funciei de transfer :
() q = (q1 , q2) Q i
( 1(q1, ) , 2(q2, ) ) dac 1 2 i 1 (q1, ) i 2(q2, )

( 1(q1, ) , q2 ) dac 1 \ 2 i 1 (q1, )


(q,) =
( q1, 2(q2, ) ) dac 2 \ 1 i 2 (q2, )

Nu se definete pentru orice caz care nu corespunde celor definite mai sus

n acest caz, limbajul generat de automatul rezultat i limbajul marcat al automatului


rezultat au urmtoarele definiii:
1) Lm (G1 || G2) = { s* / s 1 Lm (G1) i s 2 Lm (G2) }
2) L (G1 || G2) = { s* / s 1 L (G1) i s 2 L (G2) }
Observaie: Dac 1 = 2 atunci Lm(G1 || G2) = Lm (G1) Lm(G2) i L(G1 || G2) =
L(G1)L (G2).
Automatele studiate pn acum pot fi considerate ca maini de stare cu ieiri binare: fa
de un cuvnt de intrare dat w se poate specifica numai dac acesta este sau nu acceptat
(respectiv daca (q0, w)Qm). n anumite situaii este de dorit s se diferenieze strile
marcate, respectiv nemarcate, ntre ele. Pentru aceasta se folosesc aa-numitele maini de
stare cu ieiri : Moore i Mealy.

Definiie: O main Moore se poate defini ca un sextuplu


M = (Q , , , , , q0)
unde:
Q = mulimea (finit) a strilor
= alfabetul de evenimente (finit i el)
q0 = starea iniial
= funcia de tranziie : Q Q
= alfabetul ieirilor
= funcia de alocare a ieirilor : Q
Conform definiiei, orice main Moore d un rspuns (q0) asociat unei intrri nule ().
Exemplu:
S se proiecteze maina Moore care calculeaz restul modulo 3 pentru un ir binar de
intrare (care are semnificaia unui numr ntreg n format binar)
Evident, exista doar trei ieiri posibile: = {0, 1, 2}, ceea ce nseamn c numrul
maxim de stri este tot trei.
Pentru intrarea nul (echivalent cu numrul 0), ieirea generat trebuie s fie 0. Rezult,
prin definiie, c (q0) = 0.
n continuare, se folosete urmtorul raionament: dac un ir de intrare binar w
corespunde numrului natural n, atunci w0 i corespunde lui 2n i w1 lui (2n+1).
Rezult urmtoarea structura pentru maina Moore dorit:

1 0
1 2
0
1
q0 q1 q2

0
1 0

Definiie: O main Mealy poate fi definit ca un sextuplu


Me = (Q, , , , , q0)
unde :
Q = mulimea (finit) a strilor;
= alfabetul de evenimente (finit i el);
= alfabetul ieirilor;
q0 = starea iniial;
= funcia de tranziie cu definiia :Q Q;
= funcia de alocare a ieirilor :Q .
Conform definiiei, pentru o intrare nul () o main Mealy genereaz o ieire nul ().
Din punctul de vedere al puterii de modelare, mainile Moore i Mealy sunt echivalente;
din punctul de vedere al lungimii cuvntului de ieire, maina Mealy va da un rspuns de
lungime cu 1 mai mic dect maina Moore pentru aceeai lungime a cuvntului de
intrare.
Minimizarea automatelor :
Fie x, y L. Atunci RL este o relaie de echivalen asociata limbajului L (sau x RL y)
dac i numai dac pentru () z *,
1. fie xz L i yz L
2. fie xz L i yz L.
Relaia RL mparte limbajul L n clase de echivalen. Numrul de clase de echivalen se
numete index.
Se poate demonstra c indexul unui limbaj regulat este finit.
Fie M= (Q, , , q0, Qm) un AFD. Se definete relaia de echivalen RM asociata
automatului M astfel:
pentru x , y *, x RM y dac i numai dac (q0, x) = (q0, y).
n plus, dac x RM y, pentru () z * avem xz RM yz. (Ceea ce revine la (q0 , xz) =
((q0 , x), z) = ((q0 , y), z) = (q0 ,yz))
O relaie de echivalen de acest tip se numete invariant la dreapta (fa de operaia de
concatenare).
Teorem (criteriul Myhill-Nerode): Urmtoarele afirmaii sunt echivalente:
1. Limbajul L * este acceptat de un automat finit;
2. L este reuniunea unor clase de echivalen determinate de o relaie de
echivalen invariant la dreapta cu index finit;
3. Fie relaia de echivalen definit pe limbajul L astfel:
() x, y L , x RL y dac i numai dac () z * , xz L numai n cazul n care i
yz L .
Ca o consecin a teoremei de mai sus, o stare p este echivalent cu o stare q a
automatului M dac i numai dac pentru orice ir de intrare x, (p, x) este stare marcat
numai atunci cnd (q, x) este o stare marcat.
Algoritmul de minimizare a unui automat
Start
Pas 1: pentru fiecare p Qm i q Q \ Qm bifeaz n tabel locaia corespunztoare
(strile marcate nu sunt echivalente din punct de vedere al obiectivului cu cele
nemarcate);
Pas 2: pentru fiecare pereche de stri distincte (p, q) Qm Qm sau
(p, q) (Q/Qm)(Q/Qm)
Pas 2.1 dac () a , ((p, a), (q, a)) este bifat n tabel:
atunci
1) bifeaz (p, q);
2) bifeaz succesiv toate perechile din lista de echivalene a perechii (p,q).
altfel
pentru toi a
introducere a perechii (p, q) n lista de echivalene a perechii
((p,a), (q,a)) n afara cazului n care (p,a) = (q, a).
Stop
Algoritmul de minimizare a automatelor a fost elaborat pe baza criteriului Myhill
Nerode. Acest algoritm urmrete gsirea perechilor de stri care sunt echivalente (au
aceeai evoluie). Acest lucru se realizeaz prin eliminarea strilor care nu sunt
echivalente. Algoritmul verific toate perechile distincte de stri.
Fie automatul G = (Q, , , q0, Qm). Se construiete un tabel care s conin toate
perechile de stri distincte. Din matricea care are pe linii i pe coloane toate strile se
pstreaz doar elementele de sub diagonala principal a matricei.
n acest fel, toate perechile (p, q) rmase nemarcate reprezint dou cte dou stri
echivalente.
Probleme rezolvate
1. S se proiecteze un AFD peste alfabetul = {a, b}care accept cuvintele care nu
conin 3a consecutiv.
Rezolvare.
Automatul obinut este cel din figura 2.1.

b
q2 q3 a,b
q0 q1
a a a
b
b

Figura 2.1
2. S se proiecteze AFD peste alfabetul = {a, b}care accept irurile a, bb i
aba.
Rezolvare.
AFD cerut este ilustrat n figura 2.2.
a

b a,b
q02 q10 q20 q30
b a a,b
a

q5 q40
a
b b

Figura 2.2

Probleme propuse
3. S se proiecteze un AFD peste alfabetul = {a, b}care accept cuvintele ce conin
minim 3a i nu se termina cu b.

4. S se proiecteze automatul determinist peste alfabetul = {a, b} care accept


cuvintele n care perechea aa este urmat de subirul bab.

5. Care este AFD care peste alfabetul = {a, b} accept irurile cu numr par de a
i nu conin subirul bb?
6. S se proiecteze AFD care accept peste alfabetul = {a, b, c} cuvinte cu numr
par de a, par de b i impar de c.

7. S se proiecteze AFD care accept peste alfabetul = {a, b, c} cuvinte care conin
minim 2 c (nu neaprat consecutivi) i nu conin secvena aca.

8. S se construiasc peste = {a, b} un AFD care accept irurile ce conin cel puin
2 a i nu conin subirul bb.

9. S se proiecteze un AFD care accept toate irurile peste alfabetul ={a, b} care
conin cel puin 3 a i cel mult 2 b.

10. S se proiecteze AFD care peste alfabetul = {a, b}accept cuvintele ce conin
subirul aba i nu conin subirul bb,.

11. S se construiasc AFD peste alfabetul = {1, 2, 3} care accept cuvintele n care
suma ultimelor dou simboluri este 4.

12. S se construiasc un AFD peste alfabetul = {a, b} care accept cuvinte ce conin
numr par de a i nu conin subirul abb .

13. S se proiecteze AFD peste alfabetul = {1, 2, 3}, care accept toate cuvintele care
se termin cu subirul 123.

14. Care este automatul care peste alfabetul = {a, b, c} recunoate cuvintele ce conin
numr par de a i numr impar de c?

15. Care este automatul care peste alfabetul = {a, b} recunoate cuvintele ce conin
numr impar de b i care nu conin subirul bba?

16. Fie un lact electronic prevzut cu dou butoane etichetate cu a i respectiv b.


Lactul se deschide dac se apas pe butoane n combinaia aba. Din poziia
deschis el poate fi nchis numai prin apsarea butonului b. S se modeleze
funcionarea lactului printr-un automat finit determinist.

17. S se construiasc AFD care accept setul tuturor irurilor din alfabetul = {0, 1}
cu numr egal de 0 i 1 astfel nct fiecare prefix are cel mult nc un 0 n plus fata
de numrul de 1 i nc cel mult un 1 n plus fa de numrul de zerouri.

18. S se construiasc AFD aferent unui sistem de parolare peste alfabetul = {a, b, c,
d} care funcioneaz dup urmtoarele reguli:
parola are trei caractere dintre care dou trebuie sa fie identice dar
neconsecutive;
caracterul d nu trebuie s fac parte din parol dac da, atunci se ajunge ntr-o
stare de blocaj;
parola corecta conduce ntr-o stare marcata n automat.
19. Ce iruri accepta automatele:
a) b b a,b
a a

b) b
a b
b a b

a a
?

S-ar putea să vă placă și