Sunteți pe pagina 1din 23

1

Curs 6- plan
Algoritmul Coke Younger Kasami
Automate pushdown
Definiii
Limbajul recunoscut
Echivalena cu gramaticile de tip 2
Lema de pompare pentru limbaje de tip 2
Algoritmul Cocke Younger Kasami
Pentru j=1:
V
i1
= {A | A
+
a
i
} ={A | - A a
i
eP}
Pentru j>1, V
ij
:
Dac A
+
a
i
a
i+1
a
i+j-1
:
A BC
+
a
i
a
i+1
a
i+j-1
i
B
+
a
i
a
i+1
a
i+k-1
(B eV
ik
)
C
+
a
i+k
a
i+k+1
a
i+j-1
(C eV
i+k j-k
)
unde 1sisn+1-j, 1 sk sj-1
V
ij
=
k=1
j-1
{A| A BCeP, B e V
ik
, C e V
i+k j-k
}

3
Algoritmul Cocke Younger Kasami

Notaie:
{A| A BCeP, B e V
ik
, C e V
i+k j-k
} = V
ik
V
i+k j-k

Atunci:
Pentru 2 sj sn, 1si sn+1-j :
V
ij
=
k=1
j-1
(V
ik
V
i+k j-k
)

4
Algoritmul Cocke Younger Kasami
Intrare: Gramatica G n form normal Chomsky,
w=a
1
a
2
a
n
Iesire: w e L(G)?

for(i=1; i<=n; i++)
V
i1
= {A | - A a
i
eP}
for(j=2; j<=n; j++)
for(i=1; i<=n+1-j; i++){
V
ij
= u;
for(k=1; k<=j-1; k++)
V
ij
= V
ij
(V
ik
V
i+kj-k
)
}
if(Se V
1n
) w e L(G) else w e L(G)


5
Automate pushdown
Automat finit + memorie pushdown (stiva)
Model fizic:
6
a
1
a
2
a
3
a
n
q
z
1
z
2
z
n
Automate pushdown
M = (Q, E, I, o, q
0
, z
0
, F)
Q este mulimea (finit) a strilor
E alfabetul de intrare
I alfabetul memoriei pushdown (stiv)
q
0
eQ starea iniial
z
0
e I simbolul iniial din stiv
F _Q, mulimea strilor finale
o : Q (E {} )I 2
QI*
Modelul este nedeterminist
7
Automate pushdown
8
a1

a2

q
z
1
z
2
z
n
w

Configuraie: (q, w, ) e QE*I*, 1: top
Automate pushdown
9
a
1
a
2
a
n
q
0

z
0
w
Configuraie iniial: (q
0
, w, z
0
) e QE*I*
Relaia de tranziie ntre configuraii
10
a1

.

a
q
z

w
|
Configuraia curent (q, aw, z|) i (q, o) e o(q, a, z)
Relaia de tranziie ntre configuraii
11
a1

.

a
q
w
|
(q, aw, z|) | (q, w, o|)
o
Relaia de tranziie ntre configuraii
Fie M = (Q, E, I, o, q
0
, z
0
, F) un automat pushdown

Relaia de tranziie ntre configuraii:
(q, aw, z|) | (q, w, o|) dac (q, o) e o(q, a, z)
(q,q eQ, ae E {c}, z e I, o,| e I
*
)
Calcul: nchiderea reflexiv i tranzitiv a relaiei
de mai sus: daca C1,,Cn configuraii astfel nct:
C1 | C2 | | Cn se scrie:
C
1
|
+
C
n
dac n > 1, C
1
|
*
C
n
dac n > 0

12
Limbajul recunoscut

Prin stri finale (dac F= u ):
L(M) = {w e E
*
|(q
0
, w, z
0
) |*(q, , ), q e F, e I*}

Prin golirea stivei (dac F=u):
L
c
(M) = {w e E
*
|(q
0
, w, z
0
) |*(q, , ), q e Q}

13
Exemplu
Automat care recunoate limbajul {a
n
b
n
| n>=1}:
M = ({q
0
,q
1
,q
2
}, {a,b}, {a,z}, o, q
0
, z, {q
2
})
1.o(q
0
,a,z)={(q
0
,az)}
2.o(q
0
,a,a)={(q
0
,aa)}
3.o(q
0
,b,a)={(q
1
,c)}
4.o(q
1
,b,a)={(q
1
,c)}
5.o(q
1
,c,z)={(q
2
,c)}



14
Exemple
Un automat pushdown ce recunoate limbajul
{waw
R
|we{0,1}*}
Fiecare 0 sau 1 citit se introduce n stiv
a la intrare produce pregtirea scoaterii a cte un simbol
din stiv dac el coincide cu cel din intrare

Un automat pushdown ce recunoate limbajul
{ww
R
|we{0,1}*}
?
Un automat pushdown ce recunoate limbajul
{ww|we{0,1}*}
?

15
Echivalena definiiilor privind recunoaterea

Pentru orice automat pushdown M cu F = u, exist
unul M cu stari finale astfel ca L(M) = L
c
(M)
Dac M = (Q, E, I, o, q
0
, z
0
, u), considerm
M = (Q{q
f
, q
0
}, E, I,z
0
}, o, q
0
, z
0
, {q
f
})
1. o(q
0
,c,z
0
)={(q
0
,z
0
z
0
)} (fr s citeasc niciun simbol, M trece n
configuraia iniial a lui M)
2. o(q,a,z)= o(q,a,z), qeQ,ae E{c}, ze I (M face aceleai
tranziii ca i M)
3. o(q,c, z
0
)={(q
f
, c)} qeQ (M va trece n starea final doar dac
stiva lui M este vid)



16
Echivalena definiiilor privind recunoaterea

Pentru orice automat pushdown M cu stri finale exist
unul M cu F=u, astfel ca L
c
(M) = L(M)

Dac M = (Q, E, I, o, q
0
, z
0
, F), considerm

M = (Q{q

, q
0
}, E, I,z
0
}, o, q
0
, z
0
, u)


17
Echivalena definiiilor privind recunoaterea
M = (Q{q

, q
0
}, E, I,z
0
}, o, q
0
, z
0
, u)

1. o(q
0
,c,z
0
)={(q
0
,z
0
z
0
)}
2. a) o(q,a,z)= o(q,a,z), q eQ, ae E, ze I (se fac aceleai
tranziii ca n M, pentru orice simbol ntlnit)
b) o(q,c,z)= o(q,c,z), q eQ\F, ze I (se fac aceleai c-tranzitii ca
n M, dac starea nu este final)
c) o(q,c,z)= o(q, c,z) {(q
c
, c)}, dac qeF, ze I (dac M ajunge
ntr-o stare final, M poate trece ntr-o stare special )
3. o(q,c, z
0
)= {(q
c
,c)} , dac q eF ( cazul 2(c), n situaia n care n stiv
este z
0
)
4. o(q
c
,c, z)= {(q
c
,c)} dac z eI{z
0
} (M rmne n starea q
c
i se
extrage vrful stivei)


18
Automate pushdown vs. L
2
Pentru orice gramatic G exist un automat
pushdown M astfel nct L
c
(M) = L(G)
Fie G = (N, T, S, P)
Construim M = ({q}, T, NT, o, q, S, u) unde:
1. o(q, , A) = {(q, |)| A | e P}
2. o(q, a, a) = {(q, )}
3. o(q, x, y) = u n restul cazurilor
w e L(G) S
+
w (q, w, S) |
+
(q, , )
M simuleaz derivrile extrem stngi din G
20
Automate pushdown vs. L
2
Pentru orice automat pushdown M exist o gramatic G
astfel nct L(G) = N(M)
Fie M = (Q, E, I, o, q
0
, Z
0
, u)
Construim G = (N, E, S, P) astfel:
N = {[qzp]| p, q e Q, z e I} {S}
P conine toate regulile de forma:
S [q
0
z
0
q] qeQ
dac (p,z
1
z
2
z
m
) e o(q, a, z), atunci, pentru orice secven de stri
q
1
,.,q
m
eQ :
[qzq
m
] a[pz
1
q
1
][q
1
z
2
q
2
+*q
m-1
z
m
q
m
]
dac (p,) e o(q, a, z), atunci:
[qzp] a
Are loc: [qzp]
+
w (q, w, z) |
+
(p, , )
21
Automate pushdown deterministe
Automatul pushdown M = (Q, E, I, o, q
0
, z
0
, F)
este determinist dac funcia de tranziie
o : Q (E {} )I 2
QI*
ndeplinete
condiiile:
1. |o(q, a, z)| 1, a E {}, q Q, z I
2. Dac o(q, , z) = u atunci o(q, a, z) = u, a E

Un automat pushdown determinist poate avea
-tranziii

22
L
2DET
L
2DET
= {L | M automat pushdown determinist astfel ca
L = L(M)}.

Clasa L
2DET
este o clas proprie a clasei L
2


O gramatic G este determinist dac:
Orice producie este de forma A ao, unde a este terminal iar
o e (NT)*
Pentru orice A e N, dac A ao , A bo e N atunci a = b.

Pentru orice gramatic determinist G exist un automat
pushdown determinist M astfel ca L(G) = L(M)

23
Lema de pompare Bar-Hillel pentru L
2

Pentru orice limbaj de tip 2 exist o constant
n astfel ca dac w L, |w| n, atunci exist o
descompunere w = xyzuv cu proprietile:
1. |yu| 1;
2. |yzu| n;
3. i 0, xy
i
zu
i
v L.

L = {a
n
b
n
c
n
| n 1}
L = {a
n
b
m
a
n
b
m
| n 1}
L={a
i
b
j
c
k
| i=j,k j=k, }
L = {ww| we{a,b}
*
}

24