Documente Academic
Documente Profesional
Documente Cultură
C3 LReg
C3 LReg
1
LFA: C3 LIMBAJE REGULATE
2
LFA: C3 LIMBAJE REGULATE
Exemple 1:
AF pt un comutator electric
apasat
qinchis qdeschis
apasat
3
LFA: C3 LIMBAJE REGULATE
0 1
q1 0
q2 q3
1 0,1
Observatie 3: Principiul de lucru
Automatul finit (determinist) este un mecanism => e caracterizat de
stari i tranzitii intre stari
date de intrare i rezultate
Date de intrare:
o secventa de simboluri din alfabet, care sunt citite unul cate unul;
In ce consta calculul/prelucrarea?
aflat in starea initiala, automatul citeste cate un simbol din secventa
primita ca intrare
trece din starea curenta in alta stare (unic determinata).
6
LFA: C3 LIMBAJE REGULATE
starea starea finala tranzitie
initiala de acceptare
0 1
q1 0
q2 q3
1 0,1
Observatie 3 (cont.)
Ce determina trecerea intr-o (anumita) alta stare (calculul/prelucrarea)?
starea curenta
simbolul curent citit
Cand se termina calculul?
au fost citite toate simbolurile din secventa de intrare
Cum se termina calculul (ce produce automatul)?
la terminarea secventei, automatul ajunge intr-una dintre starile
qF, deci automatul accepta secventa,
la terminarea secventei, automatul ajunge intr-una dintre starile
qQ\F, deci automatul nu accepta secventa;
Observatie 4: Conventii de reprezentare. 7
LFA: C3 LIMBAJE REGULATE
starea starea finala tranzitie
initiala de acceptare
0 1 1
q1 0 0
q2 q3 q1 q2
1 0,1 0,1
(A1) (A2)
9
LFA: C3 LIMBAJE REGULATE
10
LFA: C3 LIMBAJE REGULATE
Definitie 8
L(A) = limbajul recunoscut de AFD A
= multimea secventelor peste care aduc A intr-o stare finala de
acceptare.
Observatie 9: acceptare vs. recunoastere
Fie AFD A3= (Q, , , s, )
=> L(A3) =
(automatul nu accepta nicio secventa peste alfabetul sau de intrare pentru ca
nu are nicio stare finala F = Q
dar recunoaste totusi un limbaj, i anume limbajul vid!!).
11
LFA : C3 LIMBAJE REGULATE
13
LFA : C3 LIMBAJE REGULATE
Exemplu 10
Fie = {0,1} si L = {w{0,1}+ | #1(w)=2k+1, kN}
Fie secventa de intrare
01011100100000111100011111000011100011111110000111100001:
Pas 1: stabilim informatia de memorat:
nr de smb 1 citite pana la momentul crt este sau nu impar?
la citirea unui nou smb:
daca acesta este 0 -> raspunsul trebuie lasat neschimbat;
daca acesta este 1 -> raspunsul trebuie comutat
Pas 2: reprezentam informatia de memorat ca o lista finita de posibilitati:
numar par de simboluri 1, pana acum;
numar impar de simboluri 1, pana acum. ->
14
LFA : C3 LIMBAJE REGULATE
0 0
Pas 3: asignam fiecarei posibilitati cate o stare:
qpar 1 qimpar
qpar qpar qimpar 1
qimpar . ->
Pas 4: definim tranzitiile, examinand modul in care se trece de la o
posibilitate la alta la citirea fiecarui tip de simbol din :
se trece din orice stare in cealalta la citirea unui simbol 1
se ramane in aceeasi stare la citirea unui simbol 0.
qpar 1 qimpar
1 15
LFA : C3 LIMBAJE REGULATE
0 0
qpar 1
qimpar
L = {w{0,1}+ | #1(w)=2k+1, kN} 1
.
Pas 1: stabilim informatia de memorat:
nr de smb 1 citite pana la momentul crt este sau nu impar?
la citirea unui nou smb:
daca acesta este 0 -> raspunsul trebuie lasat neschimbat;
daca acesta este 1 -> raspunsul trebuie comutat
Pas 2: reprezentam informatia de memorat ca o lista finita de posibilitati:
numar par de simboluri 1, pana acum;
numar impar de simboluri 1, pana acum
Pas 3: asignam fiecarei posibilitati cate o stare:
qpar
qimpar . ->
Pas 4: definim tranzitiile, examinand modul in care se trece de la o posibilitate la alta la citirea fiecarui tip de
simbol din :
se trece din orice stare in cealalta la citirea unui simbol 1
se ramane in aceeasi stare la citirea unui simbol 0.
Pas 5: stabilirea starii initiale si a multimii starilor finale, examinand modul in care se intra/se paraseste
fiecare posibilitate:
initial se citesc 0 simboluri -> AFD porneste din starea qpar.
starea finala trebuie sa fie cea in care acceptam secventa de intrare starea finala este qimpar. 16
LFA : C3 LIMBAJE REGULATE
Definitie 11: Calculul efectuat de un AFD
Fie A = (Q, , , s, F) un AFD
w = w1w2 ... wn : 1in: wi
Atunci, A accepta w daca ro, r1 ,, rnQ astfel incat:
1. ro = qo,
2. (ri, wi+1) = ri+l, 0in-1, 1
0
3. rn F;
q1 0
q2 q3
Exemplu 12 1 0,1
Fie automatul de mai sus;
el accepta secventa 010100 pentru ca exista secventa de stari
q1, q1, q2, q3, q2, q3, q2 , care indeplineste toate cele 3 conditii:
(q1, 0) =q1, (q1, 1) =q2, (q2, 0) =q3, (q3, 1) =q2, (q2, 0) =q3, (q3, 0) =q2
Definitie 13
LL3 AA astfel incat L(A) = L . 17
LFA : C3 LIMBAJE REGULATE
0 1
q1 1 q2 0 1
. 0
q1 1 q2
Exemple 13
0
1. L1 = {w{0,1}* | w=w1w2wk1, kN}
Putem verifica pentru:
10101, 0001, 0 1
0000, 1010, .. => q1 q1 q2
Analog, ajungem la urmatorul AFD A1 pt L1: q2 q1 q2
A1 = ({q1, q2}, {0,1}, , q1, {q2}),
0 1 Putem verifica pentru:
q1 q1 q2 0000, 1010, ..
10101, 0001, =>
q2 q1 q2 2. L2 = {w{0,1}* | w=w1w2wk0, kN} .
18
LFA : C3 LIMBAJE REGULATE
.
s
a a b b
q1
p1
b a a b
q2 p2
b
a
3. Fie A3:
Observam simetria =>
simulam un calcul (pentru ramura stanga):
aaabbbaaabbbaa..a.
=> an, anbmak, anbmakbuav =>an1bm1ak1an2bm2ak2anxbmxakx
=> L3= {w{a,b}* | w incepe i se termina cu a}
{w{a,b}* | w incepe i se termina cu b} . 19
LFA : C3 LIMBAJE REGULATE
1 0 0,1
.
0
s q0 0 q00 1
q001
1
21
LFA : C3 LIMBAJE REGULATE
Definitie 14
Fie A, B * ; definim urmatoarele operatii:
reuniunea : A B = { * | A sau B },
concatenarea : AB = { * | A i B},
operatia star : A* = {12 n * | kA, 1kn, nN };
Observatii 15
Cele 3 operatii: operatii regulate
specifice clasei limbajelor formale,
utilizate pentru a studia proprietatile limbajelor (regulate);
Operatia star
este singura unara,
A *: A* contine (n>0 sau n=0!); 22
LFA : C3 LIMBAJE REGULATE
Exemplu 16
Fie = {a,b, c,,z}, A = {telefon, mobil, fax}, B = {fix, mobil}
=> A B = {telefon, mobil, fax, fix}
A B = {telefonfix,telefonmobil, mobilfix,mobilmobil, faxfix, faxmobil}
B* = {, fix, mobil, fixfix, fixmobil, mobilfix, mobilmobil, fixfixfix,
fixfixmobil, fixmobilfix, fixmobilmobil, fixfixfixfix, . }.
23
LFA : C3 LIMBAJE REGULATE
Teorema 17
L3 este inchisa la reuniune (ie.: L1, L2 L3 => L = L1 L2 L3 )
Demonstratie (constructiva)
Ideea dem.:
ip.: L1, L2 L3 => Ai = (Qi, i, i, si, Fi), A a. i. Li = L(Ai), i=1,2
cum L = L1 L2 ->
trebuie sa construim un AFD A care sa accepte oridecateori A1, respectiv A2 accepta
-> A trebuie sa se bazeze pe A1, A2: simuleaza intai A1 i, daca el nu accepta, simuleaza A2
-> eroare: daca A l-a simulat intai pe A1 i el nu a acceptat, A nu poate relua secventa pt A2
-> alta strategie: A simuleaza simultan, pe fiecare simbol din secventa de intrare, pe A1 i A2
-> dificultate: trebuie sa memoram starile prin care trece A in timpul celor 2 simulari;
se poate face cu memoria finita a unor AFD?!?
DA, pt ca avem de memorat tot un numar finit de perechi de stari: |Q1|x|Q2| !!
=> aceste perechi de stari vor constitui multimea de stari ale lui A
starile finale de acceptare ale A sunt acele perechi de stari din A 1 respectiv A2 care
contin cel putin o stare finala de acceptare (pentru A1, respectiv A2). 24
LFA : C3 LIMBAJE REGULATE
Demonstratie formala:
Construim A = (Q, , , s, F), care recunoaste L= L1 L2 = L(A1) L(A2),
unde A1 = (Q1, 1, 1, s1, F1), A2 = (Q2, 2, 2, s2, F2), astfel:
Q = {(q1,q2) | q1Q1 i q2Q2} = Q1 x Q2
= 1 2
: Q x Q, ((q1,q2) , a) = ( 1(q1,a) , 2(q2,a) )
s = (s1,s2 )
F = {(q1,q2) | q1F1 sau q2F2} = (F1 x Q2) (Q1 x F2) q.e.d.
Corolar 18
L3 este inchisa la intersectie (ie.: L1, L2 L3 => L = L1 L2 L3 )
Demonstratie
Acelasi rationament (constructie), dar AFD care recunoaste L = L1L2 are ca
multime de stari finale, multimea:
F = {(q1,q2) | q1F1 i q2F2} = F1 x F2 q.e.d.
Intersectia NU este o operatie regulata! 25
LFA: C3 LIMBAJE REGULATE
26
LFA : C3 LIMBAJE REGULATE
Observatie 19
Incercam sa folosim pentru demonstrarea inchiderii L3 la
concatenare (i operatia star) aceeasi tehnica utilizata pentru
reuniune (i intersectie),
-> dificultate: AFD A care trebuie sa recunoasca A1.A2 (deci
sa accepte o secventa de tipul w=w1w2 ) trebuie sa accepte
numai cand A1, respectiv A2 accepta w1, respectiv w2
(simultan),
ori, A nu stie unde trebuie sa sparga w pentru a obtine w1 i
w2 i a incepe simularea!
=> trebuie introdusa o noua tehnica: nedeterminismul !
27
LFA : C3 LIMBAJE REGULATE
0,1 0,
1
0 1
q1 0 1 0, 1
q2 q3 q1 q2 q3 q4
1 0,1
Notatii 21
= {},
AN = { N | N este un automat finit nedeterminist .
29
LFA : C3 LIMBAJE REGULATE
30
FA : C3 LIMBAJE REGULATE
Exemplu 22
AFN care recunoaste limbajul:
L2= { w* | u,v *: w=u101v sau w=u11v}
AFN1 = ( {q1,q2,q3, q4}, {,0,1}, , q1, {q4} ), unde:
0 1
q1 {q1} {q1,q2}
q2 {q3} {q3}
q3 {q4}
q4 {q4} {q4}
q1 1 q2 0, q3 1 q4
31
LFA : C3 LIMBAJE REGULATE
(b) 0,1
0,1 q2
1
1
q0 q1 0,1
0
1
0 q3 q4
(c) 1
q1
0,1 1
q0 0,1
0
1
1
0 q2 q3
32
LFA : C3 LIMBAJE REGULATE
Teorema 23
AFN AFD
Demonstratie
Evident: orice AFD se converteste intr-un AFN in care fiecare multime de stari in care
poate trece automatul consta dintr-o singura stare;
Fie AN=(Q, , , q0, F) AN;
el se poate converti intr-un AFD, A=(Q, , , q0, F) A, astfel:
Q = P (Q), = , q0={q0},
F = { RQ=P(Q) | R contine cel putin o stare finala a lui AFN },
RQ si a: (R,a) = { q Q | rR: q (r,a) } = rR (r,a)
Daca tranzitii etichetate cu , mai definim
Vid( R) = R {qQ | q poate fi atinsa din R cu ajutorul a 1 sau mai multe tranzitii
etichetate cu }
(R,a) = {q Q | rR: qVid((r,a))} = rRVid((r,a))
q0=Vid({q0}) q.e.d.
Corolar 24
L*: LL3: ANAN : L(AN) = L. 33
LFA : C3 LIMBAJE REGULATE
Fie AFN=(Q, , , s, F) -> AFD=(Q, , , s, F) astfel:
Q = P (Q), = , q0={q0},
F = { RQ=P(Q) | R contine cel putin o stare finala a lui AFN },
RQ si a : (R,a) = { q Q | rR: q (r,a) }= rR (r,a).
Daca tranzitii etichetate cu , mai definim
Vid( R) = R {qQ | q poate fi atinsa din R cu ajutorul a 1 sau m. multe tranzitii etichet. cu }
(R,a) = {q Q | rR: qVid((r,a))}=rRVid((r,a))
q0=Vid({q0})
Aplicatie 25
Fie AFN de mai sus (care accepta secvente de forma , a, baba, baa etc. (i
accepta b, bb, babba etc.) => NA = ({1,2,3}, {a,b}, , 1, {1});
construim AFD A, echivalent, cf. Teoremei 23
Q = {, {1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3}}; = {a,b}
s = {1} Vid({1})= {1} {3} = {1, 3}
F = submultimile lui Q care contin cel putin o stare de acceptare =
= {{1}, {1,2}, {1,3}, {1,2,3}}
: (,a)= , (,b)=
({1},a)=, ({1},b)={2}, ({2},a)={2,3}, ({2},b)={3}, ({3},a)={1,3},
({3},b)=,
34
LFA : C3 LIMBAJE REGULATE
<=>
35
LFA : C3 LIMBAJE REGULATE
Teorema 26
L3 e inchisa la reuniune
Demonstratie
Fie N1=(Q1, 1, 1, s1, F1), L(N1) = L1 i
N2=(Q2, 2, 2, s2, F2), L(N2) = L2
Construim N care recunoaste L1L2 folosind
aceeasi idee ca in dem. ant. dar cu AFN:
Avantaj: noul AFN, N, poate ghici care
dintre N1 sau N2 poate accepta cuvantul
de intrare astfel:
N are o noua stare initiala din care ajunge in
s1 sau s2 cu ajutorul unor tranzitii
etichetate cu .
36
LFA : C3 LIMBAJE REGULATE
1 (q, a), q Q1
2 (q, a), q Q2
( q, a )
{s1 , s2 }, q s, a
, q s, a
.
37
LFA : C3 LIMBAJE REGULATE
Teorema 27
L3 e inchisa la concatenare
Demonstratie
Fie N1=(Q1, 1, 1, s1, F1), L(N1) = L1
i N2=(Q2, 2, 2, s2, F2), L(N2) = L2
Construim N care recunoaste L1L2 folosind
aceeasi idee ca in dem. ant.
Diferenta: noul AFN, N, poate ghici unde se
termina primul cuvant i poate trece din
orice stare finala a lui N1 in starea initiala
a lui N2 printr-o tranzitie etichetata cu .
Starile finale ale lui N sunt numai starile
finale ale lui N2.
38
LFA : C3 LIMBAJE REGULATE
1 (q, a), q Q1 \ F1
(q, a), q F , a
( q, a ) 1 1
1 (q, a)U{s2 }, q F1 , a
2 (q, a), q Q2
.
39
LFA : C3 LIMBAJE REGULATE
Teorema 28
L3 e inchisa la operatia star
Demonstratie
Fie N1=(Q1, 1, 1, s1, F1), L(N1) = L; construim N=(Q, , , s, F), L(N) = L*.
Folosim aceeasi idee ca in cazul reuniunii i concatenarii: N va recunoaste secventa
de intrare doar cand o va putea descompune in mai multe subsecvente pe care N 1 le
va recunoaste (pe fiecare).
N are aceleasi elemente ca N1 dar contine in plus tranzitii etichetate cu care ii permit
sa se intoarca din orice stare finala in starea initiala =>
cand N incheie calculul pentru o subsecventa pe care N 1 o accepta, N are optiunea
de a reveni la starea initiala pentru a citi o noua subsecventa acceptabila de catre N 1;
Dificultate specifica: N trebuie sa accepte (L* contine intotdeauna ):
adaugam o noua stare intiala, s, pentru N
o defininim i ca stare finala
etichetam tranzitia dintre s i s 1 cu (pentru a nu introduce secvente noi in L(N).
40
LFA : C3 LIMBAJE REGULATE
41
LFA: C3 LIMBAJE REGULATE
42
LFA : C3 LIMBAJE REGULATE
Definitie 29
Expresie regulata =
= o expresie R care satisface una dintre urmatoarele conditii:
1. a este o expresie regulata (reprezentand lb. {a}*);
2. este o expresie regulata (reprezentand lb. {} *);
3. este o expresie regulata (reprezentand limbajul vid);
4. daca R1 si R2 sunt expresii regulate
(R1R2) este o expresie regulata,
(R1oR2) este o expresie regulata,
(R1*) este o expresie regulata;
Notatii 30
L(R) = limbajul generat de expresia regulata R;
R = { R | R este o expresie regulata }.
43
LFA : C3 LIMBAJE REGULATE
44
LFA : C3 LIMBAJE REGULATE
Aplicatii ale expresiilor regulate
1. descrierea pattern-urilor:
o utilitare: AWK sau GREP din UNIX;
o limbaje de programare moderne: PERL;
o editoarele de texte
ofera mecanisme de descriere a patternurilor folosind expresii regulate
pentru cautari de secvente care satisfac anumite conditii;
2. proiectarea analizoarelor lexicale (parte a compilatoarelor pentru
limbajele de programe; efectueaza analiza lexicala a programului-sursa ca
prima faza a traducerii acestuia in program-obiect):
expresiile regulate permit descrierea sintaxei identificatorilor (nume de
variabile, constante etc.) ca in ex.:
o constanta numerica, formata dintr-o parte intreaga i eventual dintr-o
parte fractionara i/sau un semn, poate fi descrisa ca un cuvant din limbajul
(+ ) (C+ C+ . C* C* . C+) peste alfabetul C = { 0,1,2,,9 }.
45
LFA : C3 LIMBAJE REGULATE
Definitie 32
AFNG = (Q, , , qstart, qaccept), unde:
Q = multime finita, nevida, ale carei elemente se numesc stari;
= multime finita, nevida, numita alfabet de intrare, ale carei
elemente se numesc simboluri;
qstart Q, numita starea initiala;
qaccept Q, numita starea finala;
: (Q \ {qaccept }) x (Q \ { qstart }) R, numita functia de tranzitie.
46
LFA : C3 LIMBAJE REGULATE
Teorema 33
L*, LL3: o expresie regulata R peste care descrie L.
Demonstratie
Fie L* un limbaj regulat => AA a.i. L=L(A)
Exista un algoritm de convertire a unui AFD intr-o expresie regulata:
1. se converteste AFD intr-un AFNG,
2. se converteste AFNG intr-o expresie regulata;
Fie L* un limbaj si fie R o expresie regulata peste a.i. L(R)=L;
E suficient sa demonstram cum se transforma o expresie regulata intr-un
AFN (examinand pe rand cele 6 cazuri din Definitia 29) i sa aplicam
Corolarul 24):
47
LFA : C3 LIMBAJE REGULATE
Formal: AN=( {s,q}, , , s, {q} ) unde: (s,a)={q}, (r,x)= daca rs sau xa;
2. daca R= => L(R)={} i AN care recunoaste L(R) este:
ab a
a
a b
(ab a)* a
q.e.d.
50
LFA: C3 LIMBAJE REGULATE
51
LFA : C3 LIMBAJE REGULATE
Lema de pompare
Fie L*, LL3 p N (numit lungimea sau ct.de pompare)
a.i.
wL: |w|p atunci x,y,z* cu proprietatea ca
w=xyz si:
(1) i 0: xyiz L;
(2) |y| > 0;
(3) |xy|p.
Observatii 33
x= z=;
cond (2) evita solutiile triviale;
cond. (3): f. utila in unele demonstratii de neapartenenta;
daca wL: |w|< p (pt. p N ales) => () wL: |w|p si atunci
cele 3 conditii sunt trivial verificate, lema nemaiavand obiect!! .
52
LFA : C3 LIMBAJE REGULATE
Ideea demonstratiei
Luam p=|Q|
i n=|w| , np
n+1 > p=|Q| cel putin 1 repetitie: q0qiqkqrqr+1qrqtqf
y
x qr
q0
z qf
Verificam conditiile:
fie w=xyyz; xyiz, i 2 >0, s=xz (1);
subsecv. y aduce M din qr inapoi in qr (2);
qr este prima stare care se repeta iar n+1>p
repetitia apare in una dintre primele p+1 stari din secv.53 (3)
LFA : C3 LIMBAJE REGULATE
x qr y
q0
Demonstratie z qf
Fie A = (Q, , , s, F)A , L(A) = L
i p = |Q|
Fie w = w1w2 ... wn L, |w| = n, n p
i ro, r1 ,, rnQ starile parcurse de A pentru prelucrarea secventei w
=> ro = s; ri+1=(ri, wi+1), 0in-1; rn F
Obs. ca numarul de stari este n+1 p+1 (am pp. n p ) =>
cf. principiului cutiei: intre primele p+1 stari exista o stare care se repeta
doua stari rj i rk ,1 j<kp+1: rj = rk
=> kp+1 => x,y,z*: x = w1w2...wj-1,
y = wjwj+1...wk-1,
z = wkwk+1...wn. ->
54
LFA : C3 LIMBAJE REGULATE
Demonstratie (cont.)
Cum secventa x duce A din starea ro in starea rj
iar z duce A din starea rk in starea rn , unde rn F =>
=> A accepta toate secvenetele xyiz, i 0 (=> cond(i));
Cum 1 j<kp+1 => jk |y| > 0 (=> cond(ii)),
=> |xz| p (=> cond(iii)); q.e.d.
x qr y
Aplicatie 34
q0
Lema de pompare: demonstrarea L L3: z qf
ppa LL3 => putem aplica Lema:
exista pN a.i. wL, |w|p, poate fi pompat
cautam un contraexmplu i.e.
cautam un wL, |w|p, care, oricum ar fi descompus in x,y,z *:
contrazice cel putin una dintre conditiile (i)-(iii),
(cel mai des: i N (i=0 sau i>0) a.i. xyizL);
De obicei, alegem acel w care evidentiaza esenta caracterului neregulat
55 al L.
LFA : C3 LIMBAJE REGULATE
Exercitii 35
1. L1= { anbn | n N } L3
2. L2= { an | n,k N, n=2k } L3
56
LFA : C3 LIMBAJE REGULATE
x qr y
q0
z qf
Solutii 35
1. L1= { anbn | n N } L3
fie w=apbp, p=ct de pompare => |w|=2p>p1;
exista 3 descompuneri posibile w=xyz:
x=ap, y=bk, 1kp, z=bp-k => xy2z=apbkbkbp-k=apbp+k
x=ap-k, y=ak, 1kp, z=bp => xy2z=ap-kakakbp=ap+kbp
x=ap-k, y=akbk, 1<k<p, z=bp-k => xy2z=ap-kakbkakbkbp-k=apbkakbp
57
LFA : C3 LIMBAJE REGULATE
Solutii 35
4. L2= { an | n,k N, n=2k } L3.
pt a gasi contradictia trebuie sa examinam sirul de patrate perfecte:
0, 1, 4, 9, 16, 25, 36, 49,... : distanta intre p2 i (p+1)2 creste odata cu p
=> vom examina cuvintele w=xyz= ap^2 i xy2z (evident |xy2z|=|xyz|+|y| )
Verficam conditia (iii): cf. ei trebuie sa avem:
|xy|p i deci |y|p
Pe de alta parte, |xyz|=|ap^2|=p2 => , |xy2z|=p2+|y| p2+p (a)
dar p2+p < p2+2p+1=(p+1)2, (b)
cf. cond. (ii): y => |xy2z|=p2+|y| > p2 (c)
Din (a), (b), (c) => p2 < |xy2z| < (p+1)2
=> () nN a.i. |xy2z| =n2
=> xy2z L4 => L4 L3. 58
LFA: C3 LIMBAJE REGULATE
59