Documente Academic
Documente Profesional
Documente Cultură
Introducere
Acest modul se referă la proprietăţi ale familiei limbajelor regulate care permit atât
construcţia de noi limbaje, gramatici, automate finite şi expresii regulate at şi
demonstrarea unui rezultat foarte interesant enunţat în modulul 1 şi anume: clasa
limbajele de tip 3 nu este egală cu clasa limbajelor independente de context.
Competenţe
La sfârşitul acestui modul studenţii vor fi capabili să:
Construiască automate finite deterministe şi nedeterministe pentru limbaje
compuse din mai multe alte limbaje;
Construiască gramatici generative de tip 3 nedeterministe pentru limbaje
compuse din mai multe alte limbaje;
Construiască expresii regulate nedeterministe pentru limbaje compuse din
mai multe alte limbaje;
Implementeze algoritmii prezentaţi într-un limbaj de programare general
- 92 -
Unitatea de învăţare M3.U1. Proprietăţi de închidere pentru
limbaje regulate
Cuprins
M3.U1.1. Introducere .................................................................................................... 93
M3.U1.2. Obiectivele unităţii de învăţare ..................................................................... 93
M3.U1.3. Proprietăţi de închidere ale limbajelor regulate ....................................... .....93
M3.U1.4. Rezumat ...................................................................................................... 100
M3.U1.1. Introducere
Vom studia o serie de proprietăţi ale limbajelor regulate dintre care o parte
importantă o formează proprităţile de închidere ale familiei limbajelor regulate la
operaţiile cu limbaje introduse în modulul 1. Pentru că limbajele de tip 3 pot fi
generate de gramatici de tip 3, recunoscute de automatele finite sau reprezentate de
expresii regulate, în demonstraţii vom folosi oricare dintre aceste reprezentări.
Teorema 2.9.1
Clasa limbajelor de tip 3 este închisă în raport cu reuniunea.
▼ Demonstraţie:
- 93 -
Demonstraţia se poate face folosind automate finite nedeterministe sau folosind
gramaticile generative de tip 3. Alegem cea de a doua variantă (prima poate constitui un
exerciţiu).
Fie L1, L2 două limbaje de tip 3 generate de gramaticile G1, G2:
G 1 (VN , VT , S1 , P1 ) , unde
L(G 1 ) L1 \ λ
(1) (1)
L(G 2 ) L 2 \ λ
(2) (2)
2
G (V N
, VT
, S 2
, P2
)
Presupunem că VN VN (în caz contrar, se poate face o redenumire a variabilelor
(1) (2)
astfel încât condiţia să fie îndeplinită fiindcă variabilele nu apar în cuvintele limbajului) şi
construim:
G 3 (VN(1) VN(2) S3 , VT(1) VT(2) , S3 , P3 ) ,
S3 VN(1) VN(2)
unde
P3 P1 P2 S3 α S1 α P1 sau S2 α P2
Dacă λ L1 L 2 atunci la mulţimea regulilor se adaugă S 3 λ (adică dacă
S1 λ P1 sau S 2 λ P2 ).
Fie w L 1 . Atunci:
w L S α *
α*
w , S3 α P3 .
w
G G G
1 1
1 1 3
Similar pentru w L 2 .
* * *
Dacă α w , α S3 , atunci α w sau α w după cum α VN VT
(1) (1) *
sau
G3 G1 G2
α VN(2) VT(2) .
*
Teorema 2.9.2
Clasa limbajelor de tip 3 este închisă în raport cu complementarea.
▼ Demonstraţie:
Să arătăm această proprietate folosind automate finite deterministe.
Fie M (Q, Σ, δ, q 0 , F) un automat finit determinist, astfel încât T(M)=L.
Fie Σ 1 Σ şi s o nouă stare ( s Q ).
Construim M 1 (Q {s}, Σ 1 , δ1 , q 0 , (Q \ F) {s}) , unde:
δ1 (q, a) δ(q,a), pentru q Q, a Σ
δ1 (q, a) s, pentru q Q, a Σ1 \ Σ
δ1 (s, a) s, pentru a Σ1
- 94 -
M1 este construit adăugând o stare “capcană” la mulţimea stărilor, stare în care automatul
intră pentru orice simbol care nu e în Σ şi rămâne în ea indifferent de simbolul de intrare citit, iar
apoi schimbând stările finale cu cele nefinale.
Un cuvânt din Σ1 \ T(M) este sau un cuvânt din Σ* de la care M nu ajunge în stare
*
finală, deci care nu e acceptat de M, adică δ(q 0 , x) Q \ F , sau este un cuvânt care conţine
simboluri din Σ 1 \ Σ şi în momentul depistării unui astfel de simbol M1 intră în starea s în care
rămâne până analizează tot cuvântul.
▲
Teorema 2.9.3
Clasa limbajelor de tip 3 este închisă în raport cu intersecţia.
▼ Demonstraţie:
Varianta 1.
Folosim pentru această demonstraţie una dintre relaţiile lui DeMorgan, din teoria
mulţimilor:
L1 L 2 L1 L 2 ,
unde L reprezintă complementara lui L.
Din teoremele 2.6.1 şi 2.6.2 rezultă deci că dacă L1 şi L2 sunt limbaje regulate, atunci şi
limbajul L1 L 2 este regulat.
Sigur ca aceasta este o demonstraţie elegantă a teoremei dar ea nun e furnizează nici un
mijloc de a construe gramatica sau automatul pentru L1 L 2 când cunoaştem gramaticile,
respectiv automatele, pentru L1 şi L2. Prezentăm in continuare o astfel de demonstraţie, care se
poate face construind un automat finit care să simuleze în paralel cele două automate M 1 si M2
astfel:
Varianta 2.
Fie M 1 (Q1 , Σ1 , δ1 , q 1 , F1 ) şi M 2 (Q 2 , Σ 2 , δ 2 , q 2 , F2 ) două automate finite
deterministe. Ele acceptă mulţimile regulate T(M1) = L1, respectiv T(M2) = L2.
Presupunem că Q1 Q 2 (dacă nu, se face o simplă redenumire a stărilor fiecăruia
dintre ele, de exemplu prin renumerotare).
Putem presupune că Σ 1 Σ 2 Σ (dacă nu, creăm Σ Σ 1 Σ 2 ).
Construim automatul finit nedeterminist M3 care acceptă intersecţia L1 L 2 , după cum
urmează:
M3 = (Q1 x Q2, , 3, [q0,q1], F1 x F2), unde 3 este definit de :
Evident că automatul M3 intră într-o sare finală din F1 x F2 dacă şi M1 intră intr-o stare finală din
F1 şi M2 intră intr-o stare finală din F2.
▲
- 95 -
Din teoremele 2.6.1, 2.6.2 şi 2.6.3 rezultă că:
Teorema 2.9.4
Clasa mulţimilor regulate este o algebră booleană.
Teorema 2.9.5
Clasa mulţimilor regulate este închisă în raport cu operaţia de oglindire.
▼ Demonstraţie:
Fie un automat finit M (Q, Σ, δ, q 0 , F) . Considerăm mulţimea regulată L=T(M).
Definim automatul finit nedeterminist M’ astfel încât să funcţioneze “invers” faţă de M:
M (Q {q 0 }, Σ, δ, q 0 , F) , unde:
F {q 0 } dacă λ T(M)
sau F {q 0 , q 0 } dacă λ T(M)
având tranziţiile:
p δ(q0 , a) dacă δ(p, a) F
p δ(q, a) dacă δ(p, a) q
~
Este uşor de demonstrat acum că T(M) L (vezi şi definiţia oglindirii unui limbaj, în
capitolul I, paragraful § 1.3).
▲
Teorema 2.9.6
Clasa mulţimilor regulate este închisă în raport cu operaţia de concatenare.
▼ Demonstraţie:
Fie M 1 (Q1 , Σ1 , δ1 , q 1 , F1 ) şi M 2 (Q 2 , Σ 2 , δ 2 , q 2 , F2 ) două automate finite
deterministe. Ele acceptă mulţimile regulate T(M1), respectiv T(M2).
Presupunem că Q1 Q 2 (dacă nu, se face o simplă redenumire a stărilor fiecăruia
dintre ele, de exemplu prin renumerotare).
Putem presupune că Σ 1 Σ 2 Σ (dacă nu, creăm Σ Σ 1 Σ 2 ).
Construim automatul finit nedeterminist M3 care acceptă concatenarea T(M 1 )T(M 2 ) după cum
urmează:
M 3 (Q1 Q 2 , Σ, δ 3 , q1 , F3 )
p δ 3 (q, a) , dacă q Q1 , p Q1 \ F1 şi δ1 (q, a) p
cu {q 2 , p} δ 3 (q, a) , dacă q Q1 , p F1 şi δ1 (q, a) p
p δ 3 (q, a) , dacă q, p Q 2 şi δ 2 (q, a) p
- 96 -
şi F2 , dacă λ L 2
F3
F2 F1 , dacă λ L 2
Automatul finit M3 astfel construit va simula pe M1 până când acesta va intra într-o stare
finală, moment în care M3 poate intra în starea iniţială a lui M2 sau poate continua să simuleze
M1. Atunci când M3 ajunge în starea iniţială a lui M2, îl va simula pe acesta din urmă până la
oprire.
Se demonstrează uşor că T(M 3 ) T(M 1 ) T(M 2 ) .
▲
Teorema 2.9.7
Clasa mulţimilor regulate este închisă în raport cu închiderea Kleene.
▼ Demonstraţie:
x λ şi δ( q 0 , λ) q 0 F3
sau
x=x1x2…xn cu x i L , iar în acest caz sunt posibile situaţiile:
a.1) ( q 0 ,x1x2…xn)├* (p, x2…xn), p F (pentru că x 1 L ) dar în continuare nu e sigur
că automatul va conduce la acceptare (pornind din starea p cu şirul rămas).
Alegem atunci a doua variantă:
- 97 -
q 1 δ(q 0 , a 1 )
q i 1 δ(q i , a i 1 )
q m F
şi q 1 , q 2 ,...,q m Q
Atunci, pentru un anume i avem:
q i 1 q 0
sau sau δ(q i , a i 1 ) q i 1 .
δ(q i , a i 1 ) F
Teorema 2.9.8
Clasa mulţimilor regulate este închisă relativ la substituţia cu mulţimi regulate.
▼ Demonstraţie:
Fie R Σ o mulţime regulată şi pentru fiecare a Σ fie R a Δ o mulţime
regulată.
Fie f : Σ Δ o substituţie regulată, f(a)=Ra.
Pentru ca R şi Ra, pentru fiecare a din R, sunt mulţimi regulate rezultă că există câte o
expresie regulată care să le reprezinte, expresii care conţin un număr finit de opratori *, . ,sau |.
Se observă ca substituţia unei reuniuni, a unei concatenări sau a unui produs Kleene este
reuniunea, concatenarea, respectiv produsul Kleene al substituţiilor:
f(R 1 R 2 ) f(R 1 ) f(R 2 )
f(R 1 R 2 ) f(R 1 ) f(R 2 )
f(R) f(R )
Dar reuniunea concatenarea şi respectiv produsul Kleene sunt reprezentate de cei trei operatori
ai unei expresii regulate: *, . , | . Deci şi pentru două expresii regulate e1 si e2 vom avea:
f(e 1 | e 2 ) f(e 1 ) | f(e 2 )
f(e 1 e 2 ) f(e 1 ) f(e 2 )
f(e) f(e )
Folosind inducţia relativ la numărul de operatori folosiţi de expresia regulată rezultă că: dacă r
este o expresie regulată atunci f(r) este tot o expresie regulată, ceea ce trebuia demonstrat.
▲
- 98 -
h 1 (L) x h(x) L
h 1 (w) x h(x) w
h 1 (w) x h(x) w
h(a) 1
Teorema 2.9.10
Clasa mulţimilor regulate este închisă în raport cu homomorfismul şi cu homomorfismul
invers.
▼ Demonstraţie:
Deoarece h(a) e un caz particular de substituţie, Teorema 2.9.10 justifică prima cerinţă a
acestei teoreme.
Fie L un limbaj de tip 3 şi M automatul finit care recunoaşte L = T(M).
Construim un automat finit M’ pentru h-1(L) care simulează în controlul său finit
funcţionarea lui M corespunzător cu Fig.2.9.1.
a0 a1 … ai … an …
h(ai)
Fig.2.9.1
CF pt.M
- 99 -
Pentru formalizare vom considera fiecare stare a lui M’ de forma [α,q]unde α este partea
necitită din h(ai) iar q este o stare a lui M. Funcţia de tranziţie, ’, a lui M’ se defineşte astfel:
’([λ,q],a) = [h(a),q] M’ generează h(a), în memoria lui
’([bα,q], λ) = [α, (b,q)] M’ simuleză, funcţionarea lui M pe un sufix al lui h(a), în
controlul său finit.
▲
Să ne reamintim...
M3.U1.4 Rezumat
Unitatea de învăţare prezintă proprietăţile de închidere ale familiei limbajelor
regulate. Pentru că limbajele de tip 3 pot fi generate de gramatici de tip 3,
recunoscute de automatele finite sau reprezentate de expresii regulate, în
demonstraţii s-au folosit una sau alta dintre aceste reprezentări.
- 100 -
Unitatea de învăţare M3.U2. Lema de pompare pentru limbaje
regulate
Cuprins
M3.U2.1. Introducere ............................................................................................... 101
M3.U2.2. Obiectivele unităţii de învăţare ................................................................ 101
M3.U2.3. Proprietăţi ale limbajelor regulate ............................................................ 101
M3.U2.4. Lema de pompare ..................................................................................... 103
M3.U2.5. Rezumat....................................................................................................105
M3.U2.1. Introducere
Teorema 2.9.5
Toate mulţimile finite sunt limbaje de tip 3.
▼ Demonstraţie:
- 101 -
Dacă L este o mulţime finită de cuvinte, atunci L {w 1 ,..., w n } .
Arătăm întâi că pentru fiecare cuvânt w i L , există Gi o gramatică de tip 3, astfel încât
L(G i ) w i . Fie wi= a1a2. . . an. Atunci mulţimea de reguli:
S → a1A1
A1 → a2A2
.............
An-2 → an-1An-1
An-1 → an
generează cuvântul wi adică:
*
S w i
G3
Cum L este un limbaj finit, L w i , folosind Teorema 2.6.1 rezultă că L este un limbaj de
n
i 1
tip 3.
O demonstraţie echivalentă se poate face şi construind un automat finit M, astfel încât
T(M)=L.
▲
Teorema 2.9.9
Clasa mulţimilor regulate este cea mai mică clasă conţinând toate mulţimile finite şi fiind
închisă în raport cu operaţiile de reuniune, concatenare şi închidere Kleene.
▼ Demonstraţie:
În baza teoremelor anterioare, este suficient acum să demonstrăm că cea mai mică clasă
M conţinând toate mulţimile finite şi închisă la reuniune, concatenare şi închidere Kleene
conţine clasa mulţimilor regulate.
Fie L1 mulţimea acceptată de un anume automat finit,
M (q 1 ,...,q n , Σ, δ, q 1 , F)
Fie R ij mulţimea tuturor şirurilor x astfel încât δ(qi , x) q j şi dacă
(k)
R ik , R kk , R kj , R ij M
(k) (k) (k)
În concluzie, L1 este inclus în cea mai mică mulţime care conţine toate mulţimile finite şi
e închisă la reuniune, concatenare şi produs Kleene.
Implicaţia inversă este evidentă şi deci teorema este demonstrată.
▲
Consecinţa 2.9.1 Orice expresie formată dintr-un şir finit de simboluri peste Σ şi un număr finit
de operatori , , cu paranteze pentru a determina ordinea operaţiilor, este o mulţime regulată.
În plus, rezultă că orice mulţime acceptată de un automat finit determinist este de această
formă. Se obţine şi de aici un mod convenabil de a nota mulţimile regulate şi anume prin
intermediul expresiilor regulate.
Astfel următoarele mulţimi sunt reulate:
a) mulţimea cuvintelor care se pot forma cu simbolurile a,b,c se poate scrie sub forma a, b, c .
b) mulţimea cuvintelor formate din simbolurile 0 şi 1, având trei 0 consecutivi, se poate scrie sub
forma: 0,1 0000,1 .
Teorema 2.5.1
Fie L o mulţime regulată . Atunci există o constantă p , astfel încât dacă un cuvânt wL şi
|w|p atunci w poate fi scris w=xyz, unde:
- 103 -
- 0 |y| p
- xyizL, i0.
▼ Demonstraţie:
Fie M=(Q,,,q0,F) un automat finit cu n stări astfel încât T(M)=L.
Fie p=n.
Dacă wT(M) şi w n, atunci considerăm configuraţiile succesive ale lui M, în acceptarea
lui w;
cel puţin n+1 configuraţii, deci trebuie să fie cel puţin două stări identice p = qi = qj astfel
încât:
(q 0 , w) ├* (q i , w) ├* (q j , z) ├* (r, λ)
De aici rezultă că w=xw’ şi w’=yz şi deci w=xyz.
Fie j cel mai mic indice pentru care qi = qj de unde şi 0 |y| n.
Dar atunci :
(q 0 , xy i z) ├* (p, yi z) ├* (p, y i-1z) ├* …├* (p, z) ├* (r, λ)
Deci xyizT(M), i0.
Pentru i = 0 :
(q 0 , xz) ├* (p, z) ├* (r, λ) .
▲
Consecinţa 2.5.1. Clasa limbajelor de tip 3 este o subclasă proprie a clasei limbajelor
independente de context.
▼Demonstraţie.
Din ierarhia lui Chomsky rezultă ca regulile de tip 3 sunt şi de tip 2, deci familia limbajelor
regulate este inclusă în familia limbajelor de tip 2 adică independente de context
Pentru ca lema de pompare dă o caracterizare a mulţimilor regulate ea poate fi folosită şi
pentru a demonstra că limbajele care nu respectă lema de pompare nu sunt regulate.
Vom arăta că limbajul L= aibi i1 , pentru care am arătat că există o gramatică
independentă de context care sa-l genereze, nu este o mulţime regulată.
Presupunem că p astfel încât pentru wL : |w| p, w=xyz, |y|) p şi w’=xyizL.
- dacă y=aj cu ji, atunci ai+jbiT(M) , ceeace contrazice structura limbajului deci este
imposibil;
- dacă y=bj, atunci aibj+iT(M) ceeace contrazice din nou structura limbajului deci este
imposibil;
- dacă y=ajbk cu ji şi ki, atunci aibkajbiT(M) din nou imposibil
L= aibi i1 nu e o mulţime regulată pentru că nu respectă lema de pompare.
Deci există un limbaj ,L, care nu este de tip 3 dar este de tip 2, deci clasa limbajelor regulate
este o subclasă proprie a clasei limbajelor independente de context.
▲
- 104 -
Să ne reamintim...
Clasa mulţimilor regulate este cea mai mică clasă conţinând toate mulţimile
finite şi fiind închisă în raport cu operaţiile de reuniune, concatenare şi
închidere Kleene.
M3.U2.5 Rezumat
Această unitate de învăţare prezintă câteva dintre proprietăţile limbajelor regulate,
care nu sunt proprietăţi de închidere. Una dintre cele mai importante este lema de
pompare, care dă o caracterizare a mulţimilor regulate.
Conform lemei de pompare pentru mulţimi regulate, fiind dată o mulţime
regulată şi un cuvânt suficient de lung, se poate găsi un subcuvânt nevid al acestui
cuvânt care se poate repeta de oricâte ori astfel încât cuvântul obţinut prin repetare
rămâne în mulţimea regulată dată.
Această proprietate are multe aplicaţii printre care şi aceea că ne permite să
demonstrăm că anumite limbaje nu sunt regulate, prin faptul că nu respectă această
lemă.
- 105 -
Soluţiile testelor de autoevaluare pentru Modul 3
M3.U1.
I. Întrebări.
Raspuns: Vezi teoreme M3.U1.
II. Rezolvare
1. Ȋn general, pentru a arata ca un limbaj este regulat este suficientă construirea unui
automat care sa recunoască acel limbaj. Automatul pentru limbajul dat trebuie să accepte
şiruri care încep cu a şi se termina cu a, ceea ce este la mijloc nefiind relevant. Problema
constă în faptul că nu există nici o condiţie de finalitate a unui cuvânt, este necesar ca
automatul să intre într-o stare finală imediat ce se întâlneşte cu un al doilea a. Daca acesta nu
este finalul string-ului şi se mai întâlneşte încă un b, atunci trebuie să existe o tranziţie care să
ne scoată din starea finala. Automatul finit determinist astfel construit recunoaşte limbajul
dat în enunţ, de unde rezultă faptul ca limbajul este regulat.
M3.U2.
I. Întrebări.
Raspuns: Vezi teorema 2.5.1.
II. Rezolvare
Pentru L1 = {a m| m = n2, n1}; Folosim lema de pompare. Presupunem ca L1 este regulat, deci
respect lema de pompare, şi fie p din lema de pompare. Alegem w L cu |w|=p2 p şi, conform
lemei, există o descompunere a lui w de forma:
- 106 -
w=xyz unde 0 |y| p
şi
xyizL1, i0.
|xy2z|=|xyz|+|y|=p2+|y|.
De aici
p2<|xy2z|p2+p< (p+1)2,
adică lungimea lui w nu este un pătrat perfect deci w=xy2z nu aparţine lui L1, ceea ce contrazice
ipoteza de plecare.
Ȋn concluzie L1 nu este regulat.
Pentru L2 = {ak | k nr prim:Folosim lema de pompare. Presupunem ca L2 este regulat şi fie p din
lema de pompare. Alegem w L2 cu w=ak, kp şi conform lemei există o descompunere a lui w
de forma:
w = xyz cu 0 |y=aj| p
şi
xyiz = ak-j+i*j L2, i 0.
- 107 -