Sunteți pe pagina 1din 9

1.

1 Expresii regulate
In cele ce urmeaza, definim recursiv notiunea de expresie regulata si, simultan,
limbajul semnificat de o expresie regulata.

Definition 1 Fie A un alfabet. Notam expresiile regulate cu litere majuscule ale


alfabetului latin: E, F, ... iar limbajele reprezentate de acestea cu L (E), L (F ) , ..
. Definim expresiile regulate peste alfabetul A inductiv:

1. Cazul de baza

i) ∅ si ε ( ε bold) sunt expresii regulate; limbajele semnificate de acestea


sunt:
a. L (∅) = ∅;
b. L (ε) = {ε};
ii) pentru orice a ∈ A, a ( notatia: a bold) este o expresie regulata; lim-
bajul reprezentat de aceasta este:
L (a) = {a};

2. Cazul inductiv

i) Daca E si F sunt expresii regulate atunci E + F, E · F, E ∗ si (E) sunt


expresii regulate; limbajele semnificate de acestea sunt:

a. L (E + F ) = L (E) ∪ L (F ) ;
b. L (E · F ) = L (E) · L (F ) ;
c. L (E ∗ ) = (L (E))∗ ;
d. L ((E)) = L (E) ;

3. Cazul de inchidere

i) sunt expresii regulate doar expresiile din cazul de baza, precum si cele
obtinute aplicand de un numar finit de ori regulile definite in cazul
inductiv.

Sa retinem ca uneori, in literatura de specialitate, cazul de inchidere nu este


scris explicit, el fiind considerat subinteles.

Example 2 a. Sa consideram alfabetul A = {a, b, c}. Expresiile regulate prim-


itive sunt ∅, ε, a, b, c. Subliniem faptul ca acestea trebuie interpretate ca niste
simboluri diferite de multimea vida sau de simbolurile alfabetului A. Acesta este
motivul pentru care ele sunt scrise cu stilul bold. Limbajele semnificate de aceste
expresii regulate sunt : L (∅) = ∅; L (ε) = {ε}; L (a) = {a}; L (b) = {b};
L (c) = {c}.

1
b. Folosind aceste expresii initiale si regulile din cazul recursiv putem genera
si alte expresii. Daca notam E = a, iar F = b atunci E +F = a+b, E ·F = a·b,
E ∗ = a∗ , F ∗ = b∗ , (E) = (a), (F ) = (b) sunt de asemenea expresii regulate:
a + b cu limbajul asociat L (a + b) = L (a) ∪ L (b) = {a} ∪ {b} = {a, b};
a · b cu L (a · b) = L (a) · L (b) = {a} · {b} = {ab};

a∗ cu L (a∗ ) = (L (a))∗ = ({a})∗ = {a}n = {a}0 ∪ {a}1 ∪ ... ∪ {a}n ∪ .. =
S
n=0
{ε, a, aa, aaa, ...};

b∗ cu L (b∗ ) = (L (b))∗ = ({b})∗ = {b}n
S
n=0
(a) cu L ((a)) = L (a) = {a};
(b) cu L ((b)) = L (b) = {a};
c. In mod analog, putem deduce ca (a + b)·c∗ +b∗ ·c este o expresie regulata.
Limbajul asociat acestei expresii poate fi aflat astfel:

L ((a + b) ·c∗ +b∗ ·c) = L ((a + b) · c∗ ) + L (b∗ ·c) =


= L ((a + b)) · L (c∗ ) + L (b∗ ) · L(c) =
= (L (a) ∪ L (b)) · (L (c))∗ + (L (b))∗ · L(c) =
= {a, b} · {c}∗ ∪ {b}∗ · {c}.

In cele ce urmeaza, din motive de eficienta, renuntam la scrierea expresiilor


regulate cu caractere bold.
Sa remarcam ca, in definitia anterioara am definit implicit si operatorii binari
+, ·, (), precum si cel unar ∗ care permit construirea expresiilor regulate din
cazul inductiv. Pentru o scriere cat mai simpla a acestora, a fost stabilita o
ierarhizare a operatorilor in expresiile ce nu contin paranteze. Astfel operatorul
steaua Kleene are cel mai inalt nivel de precedenta, urmat de cel concatenare,
in timp ce + are cea mai scazuta prioritate.

Example 3 Folosind prioritizarea mentionata, expresia regulata (a + (b · (c)∗ ))


peste alfabetul {a, b, c} poate fi scrisa mai simplu a + b · c∗ .

Exemplul precedent justifica introducerea urmatoarei notiuni:

Definition 4 Doua expresii regulate E, F se numesc echivalente daca limbajele


semnificate de acestea sunt egale, L (E) = L (F ) .

Example 5 Expresiile din exemplul precedent sunt echivalente. De asemenea,


E = b∗ aa∗ (a + b)∗ , F = b∗ a(a + b)∗ si G = (a + b)∗ a(a + b)∗ sunt echivalente.
Ele semnifica limbajul L al cuvintelor peste alfabetul A = {a, b} ce contin cel
putin un simbol a.

Trecem in revista cateva tipuri expresii regulate echivalente :

Proposition 6 Daca E, F, G sunt expresii regulate peste un alfabet A, atunci


urmatoarele expresii regulate sunt echivalente:

2
i) ε·E=E·ε =E;
ii) ∅ · E = E · ∅ = ∅;
iii) E · (F + G) = E · F + E · G.

In ce priveste expresiile regulate apar urmatoarele probleme importante.

i) Avand data o expresie regulata E si un cuvant w, peste un alfabet A, exista


un algoritm care sa precizeze daca w ∈ E ?
ii) Daca E, F sunt expresii regulate este posibil ca intr-un numar finit de pasi
sa verificam daca L (E) = L (F ) ? Raspunsul la aceste intrebari este
afirmativ si va fi dezvoltat in capitolul dedicat teoriei automatelor.
iii) O alta problema incitanta este urmatoarea: pot fi reprezentate printr-o
expresie regulata toate limbajele definite peste un alfabet? Un exemplu
ce va prezentat ulterior dovedeste ca raspunsul la aceasta problema este
negativ.

Definition 7 Un limbaj L peste un alfabet A se numeste limbaj regulat daca


exista o expresie regulata E peste A astfel incat L sa fie limbajul semnificat de
E, i.e., L (E) = L. Notam clasa limbajelor regulate cu Reg(A).

Aceasta notiune are un rol central in teoria limbajelor formale. In capitolele


urmatoare vom studia diverse modalitati de definire ale unui limbaj regulat; de
asemenea, vom compara limbajele regulate cu alte tipuri de limbaje.

Theorem 8 Clasa limbajelor regulate peste un alfabet A este inchisa in ra-


port cu operatiile de reuniune, concatenare si steaua Kleene, i.e. daca L, M ∈
Reg (A) , atunci L ∪ M, L · M, L∗ ∈ Reg (A).

Proof. Demonstratia este imediata si este propusa ca exercitiu.


Multimea limbajelor regulate poate fi definita si fara a folosi notiunea de
expresie regulata.

Definition 9 Definim inductiv clasa de limbaje peste A, notata Elem(A), folosind


urmatoarele reguli:

1. Cazul de baza

i) ∅ si {ε} sunt limbaje din Elem(A);


ii) pentru orice a ∈ A, limbajul {a} ∈ Elem(A).

2. Cazul inductiv
Daca E si F sunt limbaje ce apartin Elem(A) atunci L (E)∪L (F ) , L (E)·
L (F ) , (L (E))∗ , (L (E)) sunt limbaje din Elem(A).
3. Cazul de inchidere

3
i) sunt limbaje din Elem(A) doar cele obtinute aplicand de un numar finit
de ori regulile definite in cazul inductiv.

Theorem 10 Un limbaj L peste un alfabet A este regulat daca si numai daca


L apartine clasei de limbaje Elem(A) .

Proof. Demonstratia acestei teoreme este imediata.

2 Automate finit deterministe


Un automat este un model matematic care permite recunoasterea limbajelor
regulate. Un astfel de model de calcul cuprinde:

• un dispozitiv de comanda

• un cap de citire
• o banda de intrare avand o infinitate de celule

Din punct de vedere matematic, un automat cu un numar finit de stari,


determinist poate fi descris astfel:

Definition 11 Un automat finit determinist este un 5-uplu (Q, A, δ, q0 , F ) unde:

i) Q reprezinta o multime nevida, finita ale carei elemente se numesc stari;


ii) A este un alfabet; elementele acestuia se numesc simboluri de intrare ale
automatului;
iii) δ : Q × A → Q este o functie, numita de tranzitie sau de transfer. Daca
(q, a) ∈ Q × A, egalitatea δ (q, a) = r ∈ Q trebuie interpretata astfel: dis-
pozitivul de comanda al automatului se afla in starea q si citeste simbolul
de intrare a; atunci el evolueaza din starea q in starea r.
iv) q0 ∈ Q este starea in care se gaseste automatul la inceputul procesului; ea
este numita stare initiala;

v) F este o submultime a lui Q, nevida, numita multimea starilor acceptate de


automat sau a starilor finale.

Remark 12 a. Trecerea automatului din starea q in starea r, atunci cand


citeste simbolul de intrare a (exprimata prin egalitatea δ (q, a) = r) se numeste
a
tranzitie. Notam aceasta modificare de stare si prin q → r.

b. In tranzitia anterioara, starea q si simbolul a determina unic starea r.


Din acest motiv, sistemul se numeste determinist.

4
2.1 Modul de functionare al unui automat finit determin-
ist
Modul in care un automat finit determinist (prescurtat AF D) evolueaza poate
fi descris astfel:

i) sa consideram ca automatul se afla initial in starea q0 ,iar pe banda de intrare


sunt simbolurile cuvantului w = a1 a2 ...an, n ∈ N ∗ , w ∈ A∗ , iar capul de
citire este in dreptul simbolului a1 .
ii) automatul citeste primul simbol, a1 , si trece din starea initiala q0 in starea
q1 = δ (q0 , a1 ) , definita cu ajutorul functiei δ; banda de intrare de de-
plaseaza spre stanga cu o celula;
iii) automatul citeste simbolul a2 , si trece din starea q1 in starea q2 = δ (q1 , a2 )
;
din nou banda se deplaseaza spre stanga cu o celula;
procesul se repeta, iar la ultimul pas:
iv) sistemul citeste simbolul an si trece din starea qn−1 in starea qn = δ (qn−1 , an ) .

Definition 13 In conditiile precizate mai sus, spunem ca un cuvant w = a1 a2 ...an ∈


A∗ , n ∈ N ∗ este acceptat (recunoscut) de automatul M = (Q, A, δ, q0 , F ) daca,
avand sirul de tranzitii descris anterior

δ (q0 , a1 ) = q1 , δ (q1 , a2 ) = q2 , ..., δ (qn−1 , an ) = qn ,

starea qn este o stare finala, i. e., qn ∈ F . In caz contrar, adica daca qn ∈


/ F,
spunem ca w nu este acceptat de M.

2.2 Specificarea unui AFD


Exista doua modalitati adecvate pentru a specifica un AF D :

1. prin tabelul tranzitiilor automatului;

Example 14 Exemplificam cu un automat finit determinist definit prin

0 1
→ q0 q0 q1
.
q1 q2 q1
q2 q2 q2
Din tabel, citim elementele AF D-ului: multimea starilor este Q = {q0 , q1 ,
q2 }, alfabetul A = {0, 1}, starea initiala q0 este marcata cu o sageata, → q0 ,
starile finale sunt cele subliniate-in acest caz q2 , F = {q2 }. Functia de tranzitie
δ este: δ (q0 , 0) = q0 , δ (q0 , 1) = q1 , δ (q1 , 0) = q2 , etc.
2. prin graful tranzitiilor unui AF D

Example 15 Sa consideram graful orientat, etichetat, din figura urmatoare:

5
1 modif.jpg

Figure 1: Automat finit determinist

Elementele ce definesc automatul pot fi citite cu usurinta: Q = {q0 , q1 , q2 },


alfabetul A = {0, 1}, starea initiala q0 este marcata cu sageata, → q0 ,iar
starile finale sunt incercuite de doua ori- q2 , F = {q2 }. Functia de tranzitie
δ este citita folosind arcele grafului: δ (q0 , 0) = q0 , δ (q0 , 1) = q1 , δ (q1 , 0) =
q2 , etc. Acest sistem coincide cu automatul din exemplul precedent.

Exercise 16 Considerand automatul reprezentat in figura (15) anterioara, sta-


biliti daca cuvintele w1 = 00111, w2 = 011101 sunt acceptate de acesta.

Deoarece avem sirul de tranzitii

δ (q0 , 0) = q0 , δ (q0 , 0) = q0 , δ (q0 , 1) = q1 , δ (q1 , 1) = q1 , δ (q1 , 1) = q1 ,

iar starea q1 in care se gaseste AF D-ul la finalul tranzitiilor nu este stare finala,
rezulta ca w1 nu este acceptat de catre automat.
Cuvantul w2 = 011101 este acceptat de dispozitivul de comanda deoarece
avem sirul de tranzitii
0 1 1 1 0 1
q0 → q0 → q1 → q1 → q1 → q2 → q2 ,

iar q2 ∈ F.

Remark 17 Se constata usor ca un cuvant w = a1 a2 ...an ∈ A∗ , n ∈ N ∗ este


acceptat (recunoscut) de automatul M = (Q, A, δ, q0 , F ) daca exista un sir de
tranzitii (”drum”) in graful tranzitiilor de la starea q0 la starea qn :
a a an−1 a
q0 →1 q1 →2 q2 → ... n
→ qn−1 → qn ,

2.3 Functia de tranzitie extinsa a unui AF D


Consideram un automat finit determinist M = (Q, A, δ, q0 , F ) si un sir de tranz-
itii scris in forma
a a an−1 a
q0 →1 q1 →2 q2 → ... n
→ qn−1 → qn ,

6
sau, echivalent,

δ (q0 , a1 ) = q1 , δ (q1 , a2 ) = q2 , ..., δ (qn−1 , an ) = qn .

Definition 18 Fie M = (Q, A, δ, q0 , F ) un automat finit determinist. Functia


δ ∗ : Q × A∗ → Q definita recursiv astfel:

i) cazul de baza : δ ∗ (q, ε) = q, pentru orice q ∈ Q;


ii) cazul recursiv: δ ∗ (q, wa) = δ (δ ∗ (q, w) , a) , pentru orice q ∈ Q, a ∈ A,
w ∈ A∗ ,

se numeste functia de tranzitie extinsa a automatului M.

Example 19 Pentru AF D-ul din exemplul 15 sa calculam δ ∗ (q0 , 101).

i) Folosind definitia data, avem:

δ ∗ (q0 , 101) = δ (δ ∗ (q0 , 10) , 1) .

Functia δ ∗ se autoapeleaza, prin urmare calculam

δ ∗ (q0 , 10) = δ (δ ∗ (q0 , 1) , 0)

si, folosind cazul de baza

δ ∗ (q0 , 1) = δ (δ ∗ (q0 , ε) , 1) = δ (q0 , 1) = q1 .

Inlocuim aceasta valoare, δ ∗ (q0 , 1) = q1 in egalitatea 2.3si obtinem:

δ ∗ (q0 , 10) = δ (q1 , 0) = q2

iar, in final, in 2.3 avem

δ ∗ (q0 , 101) = δ (q2 , 1) = q2 .

ii) O a doua varianta de aflare a starii δ ∗ (q0 , 101) este directa. Daca, fiind in
starea initiala, sistemul citeste primul simbol al lui w = 101, el evolueaza
in starea q1 .De aici citind 0, trece in q2, iar folosind 1 ajunge in starea q 2 .

Remark 20 a) Daca w = a1 a2 ...an ∈ A∗ scrierea δ ∗ (q0 , w) = qn semnifica


faptul ca exista un sir de tranzitii
a a an−1 a
q0 →1 q1 →2 q2 → ... n
→ qn−1 → qn ,

sau, echivalent,

δ (q0 , a1 ) = q1 , δ (q1 , a2 ) = q2 , ...,δ (qn−1 , an ) = qn .

b) Avand in vedere definitia (13), un cuvant w ∈ A∗ este recunoscut de au-


tomatul M daca si numai daca δ ∗ (q0 , w) ∈ F .

7
Definition 21 Fie M = (Q, A, δ, q0 , F ) un automat finit determinist. Multimea
cuvintelor acceptate de M ,

L (M ) = {w ∈ A∗ |δ ∗ (q0 , w) ∈ F }

se numeste limbajul acceptat de M.

Remark 22 a) Cuvantul ε ∈ A∗ este acceptat de automatul M daca si numai


daca q0 ∈ F.
b) in cele ce urmeaza functia de tranzitie extinsa, δ ∗ , va fi notata tot cu δ.

Proposition 23 Fie M = (Q, A, δ, q0 , F ) un automat finit determinist. Atunci


sunt adevarate afirmatiile:

i) δ ∗ (q, aw) = δ ∗ (δ (q, a) , w) , pentru orice q ∈ Q, a ∈ A, w ∈ A∗ ;


ii) δ ∗ (q, w1 w2 ) = δ ∗ (δ ∗ (q, w1 ) , w2 ) , pentru orice q ∈ Q, w1 , w2 ∈ A∗ .

2.4 Constructia unui automat finit determinist care ac-


cepta un limbaj dat
Exemplul urmator este ilustrativ.

Example 24 Sa se construiasca un AF D care sa accepte limbajul L al cuvin-


telor peste alfabetul A = {0, 1} ce contin secventa de simboluri ”10”, i.e.

L = {w ∈ {0, 1}∗ |w contine factorul 10}.

Proof. Consideram automatul din figura 2 si demonstram ca limbajul accep-


tat de M este L, L(M ) = L. a) Pentru a arata ca L ⊆ L (M ) fie un cuvant

1 modif.jpg

Figure 2: Automat finit determinist

w ∈ L, w = w1 10w2 , w1 , w2 fiind cuvinte din {0, 1}∗ . Fara a restrange gener-


alitatea putem presupune ca w1 nu contine factorul 10, altfel spus secventa 10
din scrierea lui w este primul subsir de caractere 10, atunci cand citim w din
stanga. Prin urmare pentru w1 sunt posibile doar urmatoarele alternative:

8
i) w1 = ε sau w1 = 00...000, echivalent w1 ∈ {0}∗ ;
ii) w1 = 11...111, ceea ce inseamna w1 ∈ 1{1}∗ ;
iii) w1 = 00...00011...11 sau w1 ∈ 0{0}∗ 1{1}∗ .

Sa remarcam ca cele 3 variante pot fi descrise sintetic prin w1 ∈ {0}∗ {1}∗ . Daca
w1 ∈ {0}∗ atunci δ (q0 , w1 ) = q0 si avem

δ (q0 , w) = δ (q0 , w1 10w2 ) = δ (q0 , 10w2 ) = δ (q2 , w2 ) = q2 .

In situatia in care w1 ∈ 1{1}∗ sau w1 ∈ 0{0}∗ 1{1}∗ atunci δ (q0 , w1 ) = q1 , ceea


ce antreneaza

δ (q0 , w) = δ (q0 , w1 10w2 ) = δ (q1 , 10w2 ) = δ (q2 , w2 ) = q2 .

Concluzionam ca δ (q0 , w) = q2 ∈ F, adica w ∈ L (M ) .


b) Dovedim acum incluziunea inversa.

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