Vous êtes sur la page 1sur 3

Linguagens Formais

Apndice 1
Jos Lucas Rangel
Julho 01

Dois teoremas interessantes de fechamento de linguagens


Teorema 1: A classe das linguagens livres de contexto fechada para interseo com
conjunto regular. Ou seja, se L uma l.l.c., e R uma linguagem regular, LR l.c..
Dem. Vamos construir um autmato de pilha no determinstico (apnd) que reconhece
M=LR, a partir de um apnd que reconhece L e de um autmato finito determinstico
(afd) que reconhece R.
Sejam
A = < KA, , , A ,iA, I, FA >
um apnd que reconhece L por estado final, e
B = < KB, , B ,iB, FB >
um afd que reconhece R. Seja
C = < KC, , , C , iC, I, FC >
um apnd, sendo
KC = KAKB
iC = ( iA, iB )
FC = FAFB
e a funo C definida por
(caso a)
C( (qA, qB), a, Z )={ ( (pA, pB), ) | (pA, )A(qA, a, Z), pB=B(qB, a) },
para todo qAKA, qBKB, a, Z.
(caso a=)
C( (qA, qB), , Z )={ ( (pA, qB), ) | (pA, )A(qA, , Z) },
para todo qAKA, qBKB, Z.
A linguagem reconhecida por C a interseo das linguagens reconhecidas por A e por
B, ou seja, M=LR. Para ver isto, basta observar que, se tivermos
( (iA, iB), x, I ) C ( (fA, fB), , ), com fAFA e fBFB,
teremos tambm
( iA, x, I ) A ( fA, , ), com fAFA
e
( iB, x ) B ( fB, ), com fBFB,
ou seja,
xL(C) implica xL(A) e xL(B).

As derivaes em A e B podem ser construdas diretamente a partir da derivao em C.


No caso da derivao em B, alguns estados aparecero repetidos, nos passos
correspondentes s transies em A com entrada .
Semelhantemente,
xL(A) e xL(B) implicam xL(C),
sendo necessrio acrescentar passos sem que B no muda de estado, correspondendo
transio com em A.
Exemplo:
Seja L = { xcy | |x|=|y|, x,y{a,b}* }; seja R = L(a*cb*). Neste caso, M = LR =
{ ancbn |n0}. Podemos ter
A = < { e, d, f }, { a, b, c }, { X, I }, A, e, I, { f } >
com
A(e, a, I) = { (e, XI) }
A(e, b, I) = { (e, XI) }
A(e, c, I) = { ( d, I ) }
A(e, a, X) = { (e, XX) }
A(e, b, X) = { (e, XX) }
A(e, c, X) = { ( d, X ) }
A(d, a, X) = { ( d, ) }
A(d, b, X) = { ( d, ) }
A(d, , I) = { ( f, I ) }
(e vazio nos demais casos)
e
B = < { r, s, t }, { a, b, c }, B, r, { s } >
com
B( r, a ) = r, B( r, b ) = t, B( r, c ) = s
B( s, a) = t, B( s, b ) = s, B( s, c ) = t
B( t, a) = t, B( t, b ) = t, B( t, c ) = t
Neste caso, C
C = < { er, es, et, dr, ds, dt, fr, fs, ft }, { a, b, c }, { X, I }, C, er, I, { fs } >
com C dado por
C(er, a, I) = { (er, XI) }
C(er, b, I) = { (et, XI) }
C(er, c, I) = { ( ds, I ) }
C(er, a, X) = { (er, XX) }
C(er, b, X) = { (et, XX) }
C(er, c, X) = { ( ds, X ) }
C(es, a, I) = { (et, XI) }
C(es, b, I) = { (es, XI) }
C(es, c, I) = { ( dt, I ) }
C(es, a, X) = { (et, XX) }
C(es, b, X) = { (es, XX) } C(es, c, X) = { ( dt, X ) }
C(et, a, I) = { (et, XI) }
C(et, b, I) = { (et, XI) }
C(et, c, I) = { ( dt, I ) }
C(et, a, X) = { (et, XX) }
C(et, b, X) = { (et, XX) }
C(et, c, X) = { ( dt, X ) }
C(dr, a, X) = { ( dr, ) }
C(dr, b, X) = { ( dt, ) }
C(dr, , I) = { ( fr, I ) }
C(ds, a, X) = { ( dt, ) }

C(ds, b, X) = { ( ds, ) }
C(ds, , I) = { ( fs, I ) }
(dt,
a,
X)
=
{
(
dt,
)
}
C

C(dt, b, X) = { ( dt, ) }
C(dt, , I) = { ( ft, I ) }
(e vazio nos demais casos)
Note que os nomes dos estados de C foram abreviados: er em vez de (e, r), etc. Alguns
estados de C so inteis, e poderiam ser retirados.
Como exemplo, as computaes nas trs mquinas, para aceitar aaacbbb:
(e, aaacbbb, I)
(e, aacbbb, XI)
(e, acbbb, XXI)
(e, cbbb, XXXI)
(d, bbb, XXXI)
(d, bb, XXI)
(d, b, XI)
(d, , I)
(f, , I)

(r, aaacbbb)
(r, aacbbb)
(r, acbbb)
(r, cbbb)
(s, bbb)
(s, bb)
(s, b)
(s, )

(er, aaacbbb, I)
(er, aacbbb, XI)
(er, acbbb, XXI)
(er, cbbb, XXXI)
(ds, bbb, XXXI)
(ds, bb, XXI)
(ds, b, XI)
(ds, , I)
(fs, , I)

Teorema 2: A classe das linguagens determinsticas fechada para interseo com


conjunto regular. Ou seja, se L determinstica, e R uma linguagem regular, LR
tambm determinstica.
Dem. Basta notar que se a construo acima for aplicada a um apd A ( e um afd B) leva a
um apd C.

Vous aimerez peut-être aussi