Sunteți pe pagina 1din 30

1

Curs 2 - plan
Proprieti de nchidere pentru limbaje de tip 3
Lema Bar-Hillel
Automate finite deterministe
Automate finite nedeterministe
Automate cu c-tranzitii

Proprieti de nchidere
Fie L, L1, L2 limbaje de tip 3, ceea ce nseamn c
exist gramaticile G, G1, G2 de tip 3 (n form
normal) astfel ca
L = L(G), L1 = L(G1) i L2 = L(G2).
Atunci, urmtoarele limbaje sunt de asemenea
regulate:
(a) L1 L2 (b) L1 L2 (c) L1 L2
(d) L1\L2 (e) L* (f) L
R

2
Proprieti de nchidere

3. nchiderea la produs:
Gramatica G = (N1 N2, T1 T2, S1, P) unde P const
din:
- regulile de forma A aB din P1
- reguli A aS2 pentru orice regul A a din P1
- toate regulile din P2
genereaz limbajul L1L2


3
Proprieti de nchidere
4. nchiderea la iteraie
Fie G=(N,T,S,P) care genereaz L (L=L(G))
G=(N ,T,S,P)
P: -reguli A aB din P
-reguli A aS, pentru orice regul A a din P
- regula S c
genereaz L*

4
Proprieti de nchidere
5. nchiderea la operaia de oglindire
Fie G=(N,T,S,P) care genereaz L (L=L(G))
G=(N{S} ,T,S,P)
P: -reguli S aA, pentru orice regul A a din P
-reguli B aA pentru orice regul A aB din P
- regula S c
- regula S a, pentru orice regul S a din P
(a eT {c})
genereaz L
R

5
Lema de pompare (Bar Hillel)
Fie L un limbaj de tip 3. Exist un numr m astfel nct
oricare ar fi cuvntul w e L cu |w| m, acesta are o
descompunere de forma w = xyz, unde 0 < |y| m, i
xy
i
z e L oricare ar fi i 0.
Demonstraie
Fie G=(N, T, S, P) astfel ca L(G)=L. Dac |N| este numrul
simbolurilor din N , m=|N|+1

Fie w=a
1
a
2
.a
n
, n m n |N|+1
S a
1
A
1
a
1
a
2
A
2


. a
1
a
2
a
k
A
k
..


a
1
a
2
a
k
a
k+1
..a
s
A
s
.a
1
a
2
a
k
a
k+1
..a
s
a
s+1
.a
n-1
A
n-1
a
1
a
2
a
k
a
k+1
..a
s
a
s+1
.a
n-1
a
n
A
k
=A
s
6
Lema de pompare (Bar Hillel)
w=a
1
a
2
.a
n
, n m
S a
1
A
1
a
1
a
2
A
2


. a
1
a
2
a
k
A
k
..


a
1
a
2
a
k
a
k+1
..a
s
A
k


a
1
a
2
a
k
a
k+1
..a
s
a
s+1
.a
n-1
A
n-1
a
1
a
2
a
k
a
k+1
..a
s
a
s+1
.a
n-1
a
n
Atunci: S

* a
1
a
2
a
k
A
k
S

* xA
k

A
k
* a
k+1
..a
s
A
k
A
k
* yA
k

A
k
*a
s+1
.a
n-1
a
n
A
k
*z

Fie x= a
1
a
2
a
k,
y=a
k+1
..a
s
si z= a
s+1
.a
n-1
a
n

- Pentru i=0, xz eL(G):
S *xA
k
* xz
7
Lema de pompare (Bar Hillel)
w=a
1
a
2
.a
n
, n m
S a
1
A
1
a
1
a
2
A
2


.
a
1
a
2
a
k
A
k
..

a
1
a
2
a
k
a
k+1
..a
s
A
k



a
1
a
2
a
k
a
k+1
..a
s
a
s+1
.a
n-1
A
n-1
a
1
a
2
a
k
a
k+1
..a
s
a
s+1
.a
n-1
a
n

x= a
1
a
2
a
k,
y=a
k+1
..a
s
z= a
s+1
.a
n-1
a
n

S

* xA
k

A
k
* yA
k

A
k
*z

Pentru i > 0, xy
i
z eL(G):
S xA
k
*x

y

A
k
* x

yyA
k
*

*xyy
.
yA
k
* xyy
.
yz = xy
i
z

8
Mecanism de recunoatere (acceptare) pentru
limbaje
Limbaje de tip 3
Mulime finit de stri
9
Automate finite
a
1
a
2
a
3
a
n
s
10
Automate finite deterministe
A = (Q, E, o, q
0
, F)
Q i E sunt mulimi finite, nevide, numite
mulimea strilor respectiv alfabetul de intrare

q
0
e Q este starea iniial

F _ Q este mulimea strilor finale

o este o funcie , o: Q E Q, numit funcia de
tranziie
11
Reprezentare prin diagrame(grafuri) de tranziie
1 s A
Stri:
Stare iniial:
Stari finale:
0 s
0

1 X
Tranziii:
i j
a
12
Reprezentare prin matricea de tranziie
a,b
q1
a
q0
b
Intrare
Stare o
a b
q0 q0 q1
q1 q1 q1
A=({q0,q1}, {a,b}, o, q0, {q1})
13
Limbajul acceptat

Extensia lui o la cuvinte
: Q E* Q care se definete astfel:
(q, c) = q, q e Q ;
(q, ua) = o( (q, u), a)),
q e Q, u e E*, a e E.

Observaie:
Are loc i:
a e E,ue E*, q e Q: (q,au)= (o(q,a),u)
u ,ve E*, q e Q: (q,uv)= ( (q,u),v)

o

14
Limbajul acceptat
Limbajul acceptat (recunoscut) de automatul
A = (Q, E, o, q
0
, F) este mulimea :
L(A) = {w | w e E*, (q
0
, w) e F}.
Un cuvnt w este recunoscut de un automat A dac, dup
citirea n ntregime a cuvntului w, automatul (pornind din
starea iniial q
0
) ajunge ntr-o stare final.

(q, a) = o(q, a), q e Q, a e E. Din acest motiv, va fi notat
de asemenea cu o.


Dou automate A i A sunt echivalente dac L(A)=L(A)
o

o
o

Exemple
L(A)={a
n
b
m
n>0,m >1}
15
a
0
b
a
b
b
1
2
a,b
0
a b
a
1
L(A)=?
a
b
Exemple
L(A) = ?
16
b
1
2
a,b
3
a
0
a
b
Exemple
Automate deterministe pentru:

L={w e{0,1}* | w conine un numr par de 0}
L ={w e{0,1}* | w conine subcuvntul 001}
L ={w e{0,1}* | w se termin cu 11}

17
18
Automate finite nedeterministe
A = (Q, E, o, q
0
, F)
Q i E, q
0
,F: ca la automatele deterministe
o este funcia de tranziie o: Q E 2
Q


Observaie:
A este automat determinist, dac
|o(q, a)| = 1, q e Q, a eE
b
2
b
3
c
4
1
a
0
b b b
19
Automate finite nedeterministe
Intrare
Stare
a b c
0 {0} {1,3} u
1 u {2} u
2 u {4} u
3 u {4} u
4 u u {4}
20
Limbajul acceptat
Fie S mulime de stri. Notm o(S, a) =
qeS
o(q, a).
Extensia lui o la cuvinte
: Q E* 2
Q
care se definete astfel:
(q, c) = {q}, q e Q ;
(q, ua) = o( (q, u), a)),
q e Q, u e E*, a e E.
Observaie:
Are loc si:
u e E*, q e Q: (q,au)= (o (q,a),u)
a e E, q e Q: (q,a) = o(q,a)

o

21
Limbajul acceptat
Limbajul acceptat (recunoscut) de automatul
A = (Q, E, o, q
0
, F) este mulimea :
L(A) = {w | w e E*, (q
0
, w) F = u}.
Aadar, un cuvnt w este recunoscut de un automat A dac,
dup citirea n ntregime a cuvntului w, automatul (pornind
din starea iniial q
0
) poate s ajung ntr-o stare final.

o

22
Nedeterminism = Determinism
Pentru orice automat nedeterminist A, exist unul
determinist A echivalent:
Dac A = (Q, E, o, q
0
, F) atunci A = (2
Q
, E, o, Q
0
, F) unde:
Q
0
= {q
0
}
F = { S| S _ Q, S F = u }
o(S, a) =
seS
o(s, a)

o(S, w) =
seS
o(s, w), w e *
o(Q
0
, w) = o({ q
0
}, w) = o(q
0
, w)
o(Q
0
, w) e F o(Q
0
, w) F = u o(q
0
, w) F = u

Pentru aplicaii se construiesc doar strile accesibile din starea
iniial
23
Automate finite cu c-tranzitii
A = (Q, E, o, q
0
, F)
Q i E, q
0
,F: ca la automatele deterministe
o este funcia de tranziie o: Q (E{c}) 2
Q


Observaie:
A este automat nedeterminist, dac
o(q, c) = u, q e Q
A este automat determinist, dac, n plus:
|o(q, a)| = 1, q e Q, a eE
24
Automate cu c-tranzitii
a
c
b
0 1
2
Intrare
Stare
a b c c
0 {0} u u {1}
1 u {1} u {2}
2 u u {2} u
25
Limbajul acceptat
Cl(q) = {q |q e Q, n graful automatului A exist un drum
de la q la q de lungime k > 0 ale crui arce sunt etichetate
cu c}.
q e Cl(q)

Dac S _ Q, atunci notm:
Cl(S) =
qeS
Cl(q) iar o(S, a) =
qeS
o(q, a).
Extensia lui o la cuvinte
: Q E* 2
Q
care se definete astfel:
(q, c) = Cl(q), q e Q ;
(q, ua) = Cl(o( (q, u), a)),
q e Q, u e E*, a e E.
o

a
26
Limbajul acceptat
(q, a) = Cl(o(Cl(q), a)), q e Q, a e E.




n cazul automatelor cu c - tranziii vom pstra
notaia pentru extensie pentru c, n general,
(q, c) = o(q, c) i (q, a) = o(q,a), a e E.
o

a
c b
0 1
2
o

27
Limbajul acceptat
Limbajul acceptat (recunoscut) de automatul cu c - tranziii
A = (Q, E, o, q
0
, F) este mulimea :
L(A) = {w | w e E*, (q
0
, w) F = u}.
Aadar, un cuvnt w este recunoscut de un automat A dac,
dup citirea n ntregime a cuvntului w, automatul (pornind
din starea iniial q
0
) poate s ajung ntr-o stare final.

o

28
Exemple
1
0
a b
L = {a
m
b
n
| n, m >= 0}
0 1
a b
b
L = {a
m
b
n
| n, m >= 0}
29
Eliminarea c - tranziiilor
Pentru orice automat A cu c - tranziii exist un
automat A fr c - tranziii echivalent cu A:
Dac A = (Q, E, o, q
0
, F) atunci A = (Q, E, o, q
0
, F) unde:
o(q, a) = (q, a)
F = F {q|Cl(q) F = u}

o(q, w) = (q, w) w e E*
o(q
0
, w) F = u (q
0
, w) F = u
(q
0
, w) F = u
o

a, b
b
30
Exemplu
a b
0 1
2
a b
2
a, b
0 1