Documente Academic
Documente Profesional
Documente Cultură
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