Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1
Objetivo Ementa
2
Bibliografia Bsica
1.HOPCROFT, John E.; MOTWANI, Rajeev; ULLMAN, Jeffrey D.
Introduo teoria de autmatos, linguagens e computao. Rio de
Janeiro:Campus, c2003. 560 p. ISBN 8535210725. [livro texto]
2.SIPSER, Michael. Introduo teoria da computao. 2. ed. So Paulo:
Thomson, 2007
3.LEWIS, Harry R; PAPADIMITRIOU, Christos H. Elementos de teoria
da computao. 2. ed. Porto Alegre: Bookman, 2000. 339 p.
ISBN8573075341.
3
Bibliografia Complementar
1.HOPCROFT, John E.; MOTWANI, Rajeev; ULLMAN, Jeffrey
D. Introduo teoria de autmatos, linguagens e
computao. Rio de Janeiro:Campus, c2003. 560 p. ISBN
8535210725. [livro texto]
2.SIPSER, Michael. Introduo teoria da computao. 2. ed.
So Paulo: Thomson, 2007
3.LEWIS, Harry R; PAPADIMITRIOU, Christos H. Elementos de
teoria da computao. 2. ed. Porto Alegre: Bookman, 2000.
339 p. ISBN8573075341.
4
Critrios de Avaliao
VI - CRITRIOS DE AVALIAO
Considerando-se que:
MPi = Mdia das n Provas escritas, para a VA i.
MTi = Mdia aritmtica dos Trabalhos de implementao
computacional, para a VA i.
MEi = Mdia aritmtica dos Exerccios entregues em sala de aula,
para a VA i.
MFi = Mdia Final, para a VA i.
MF = Mdia Final.
MFi = 0,70*MPi + 0,15*MTi + 0,15*MEi
MF da forma usual tomando as duas maiores notas das Mai
Data Atividade
6
Motivao
8
Modelos de Computao
Hierarquia de Chomsky
Linguagens e Gramticas Regulares
Linguagens e Gramticas Livre de Contexto
Linguagens e Gramticas Sensvel ao Contexto
Linguagens e Gramticas sem Restrio
9
Definies Preliminares
Smbolo - letras e dgitos
Alfabeto - Conjunto finito de smbolos
Ex: = { 0,1,2,,9}
= {a,b,c,,z}
= {0,1 }
cadeia (string) (sobre ): qualquer seqncia finita de elementos
de .
Ex.: = { a,b }
aabab, bb, abab
Notao: x, y, z.
10
tamanho de uma Cadeia x o nmero de smbolos em x.
Notao: | x |
Ex: | aabab | = 5
| abab | = 4
Cadeia Vazia : ou
||=0
a n Significa uma cadeia de a s de tamanho n.
Ex.: a5 = aaaaa
a1 = a
a0 =
11
Concatenao de x com y gerar uma cadeia xy colocando x
junto
de y.
obs.: xy yx
Ex: x = aa y = bb
xy = aabb yx = bbaa
12
Propriedades da Concatenao
Monide
Associatividade
(xy) z = x (yz)
|xy| = | x| + | y|
aman = am+n m,n 0
13
OPERAES SOBRE CADEIAS
* o conjunto de todas as cadeias sobre o alfabeto .
Ex.: {a,b}* = {,a,b,aa,ab,ba,bb,}
{ a }* = {,a,aa,aaa,aaaa,}
= { a n | n 0}.
o conjunto vazio.
* = {} por definio.
14
Diferena entre cadeias e conjuntos.
15
ESTADO
O Estado de um sistema uma descrio do sistema;
uma fotografia da realidade congelada no tempo.
16
TRANSIES
So mudanas de Estados:
Expontneas
Em resposta a uma entrada externa
Instantneas
Exemplos de sistemas de transies de estado:
Circuitos Eletrnicos
Relgios Digitais
Elevadores
O jogo da vida
17
Sistemas de Transies de Estados
Finitos:
18
AUTMATOS FINITOS
autmato finito determinstico :
M = (Q, , , s0, F), onde:
Q um conjunto finito; os elementos de Q so chamados os
estados;
um conjunto finito; o alfabeto de entrada;
: Q x Q a funo de transio. Se M estar no estado Q
e v a entrada a, o autmato vai para o estado (q,a);
s0 Q o estado inicial;
F Q; os elementos de F so os estados finais ou estados de
aceitao.
19
EXEMPLO 1
M = (Q, , , q0, F)
Q = {q0, q1, q2, q3 }
={ a, b}
(q0,a) = q1
(q1,a) = q2
(q2,a) = (q3,a) = q3
(q,b) = q ; q { q0, q1, q2, q3 }
F = { q3 }
20
TABELA DE TRANSIO
Simbolos
a b
q0 q1 q0
Estados
q1 q2 q1
q2 q3 q2
q3 F q3 q3
21
DIAGRAMA DE TRANSIO
b b b a, b
a a a
q0 q1 q2 q3
22
x L(M)
x = baaba
(q0,b) = q0
(q0,a) = q1
(q1,a) = q2 q3 F X L(M)
(q2,b) = q2
(q2,a) = q3
23
x L(M)
x = bbaba
(q0,b) = q0
(q0,b) = q0
(q0,a) = q1 q2 F X L(M)
(q1,b) = q1
(q1,a) = q2
24
EXEMPLO 1
25
FUNO DE TRANSIO
GENERALIZADA
* : Q x * Q
*(q, ) = q (1)
*(q, xa) = (*(q,x), a) (2)
* Mapeia um estado q e uma cadeia x em um novo
estado *(q, x).
* uma verso de mltiplos passos de .
26
observaes
Eq.1 a base da induo e diz que sem ler um smbolo de
entrada o autmato no pode mudar de estado.
Eq. 2 o passo da induo e diz como encontrar o estado
depois de ler uma cadeia no-vazia xa .
encontre o estado, p = *(q, x), depois de ler x e compute o
estado (p, a).
* e so iguais em cadeias de tamanho 1.
*(q,a)= *(q, a) a = a
= (*(q,), a) por 2, x=
= (q,a) por 1.
27
ACEITAO DE CADEIAS
uma cadeia x aceita por M se
*(s0, x) F
e rejeitada por M se
*(s0, x) F
conjunto ou linguagem aceita por M
L(M) = { x * | * (s0, x) F}
29
EXEMPLO 2
L(M) o conjunto de cadeias com um nmero par de
zeros e um nmero par de uns.
1
q0 q1
0
1
0 0
01
q2 q3
1
30
EXEMPLO 3
Considere o conjunto {xaaay | x,y {a,b}*}
a b
q0 q1 q0 baabaaab L(M)
q1 q2 q0 babbabab L(M)
q2 q3 q0
q3 F q3 q3
31
EXEMPLO 3
b a, b
a a a
q0 b q1 q2 q3
b
1 0
0 q0 q1 q2 1
1 0
34
Propriedades das Linguagens
Regulares
35
A Construo do Produto
36
Intuitivamente ...
37
Intuitivamente ...
38
Formalmente ...
Seja M3 = (Q3 , ,3, s3, F3 ) onde
Q3 = Q1 Q2 = { (p,q) | p Q1 e q Q2 }
F3 = F1 F2 = { (p,q) | pF1 e qF2}
s3 = (s1,s2)
3 : Q3 Q3 a funo transio definida por:
3 ( (p,q), a) = (1(p,a), 2(q,a))
3* ((p,q)), ) = (p,q)
3* ((p,q)), xa) = 3 (3*((p,q),x),a)
39
Lema: Para todo x *,
3* ((p,q)), ) = (*1(p,), *2((q, ))
3 ((s1,s2), ) F1 F2 definio de s3 e F3
A B = ~ ( ~A ~B)
42
AUTMATO FINITO
NO-DETERMINSTICO
43
Exemplo 1:
A = { x {0, 1}* | o quinto smbolo da direita
para esquerda 1}
0,1
1 0,1 0,1 0,1 0,1
q1 q2 q3 q4 q5 q6
11010010 A 11000010 A
No - determinstico:
- q1 tem duas transies com o smbolo 1.
- q6 no tem transies.
44
Exemplo 2
0,1 0,1
0 0
q0 q3 q4
45
Exemplo 2 (cont.)
Uma seqncia de entrada a1a2 an aceita por um
autmato finito no determinstico se existe uma seqncia
de transies, correspondendo a seqncia de entrada, que
leva do estado inicial algum dos estados finais.
q0 0 q0 1 q0 0 q0 0 q0 1 q0
0 1 0 0 1
q3 q1 q3 q3 q1
0
0
q4
47
Definio: Um autmato finito no - determinstico
(AFND) uma 5 - upla (Q,,,q0,F) onde Q, , q0, e F
tem o mesmo significado que para autmato finitos
determinsticos (AFD) e um mapeamento de IQ
dos
Q x 2Q . e st a
de o
j u n t
onc
r u m
(q, a) o conjunto de todos os
e seestados p tal que existe
Pod
uma transio (com o smbolo a) de q para p.
48
A funo do autmato anterior dada abaixo.
Entrada
Estado 0 1
q0 {q0,q3} {q0, q1}
q1 {q2 }
q2 {q2 } {q2 }
q3 {q4 }
q4 {q4 } {q4 }
49
: Q x * 2Q
1) (q,) = {q}
2) (q,wa) = { p | para algum r(q,w), p (r, a)}
50
0,1 0,1
0 0
q0 q3 q4
X = 01001 1
(q0 , 0) = {q0, q3 } q1
p q
52
EXEMPLO 1
s t
u
b b b
p q r
q1 a q6
a
q2 q5 q7
a a a a
q3 q4 q8 q9
a a
54
O conjunto aceito pelo autmato acima :
{ x {a*} | |x| divisvel por 3 ou 5}.
55
Propriedades de Linguagens
Regulares
56
Prova Intuitiva
Seja M o autmato para A e N para B.
Construir um novo autmato P cujo os estados so a
unio dos de M e N.
Todas as transies de M e N sero transies de P.
O estado inicial de M ser o de P.
57
EXEMPLO 4
q0 a q1 a q2 q3 b q4 b q5
q0 a q1 a q2 q3 b q4 b q5
58
Fecho de Kleene
59
Prova Intuitiva
60
EXEMPLO 5
Dado o autmato para A = {aa}, o para A* :
q0
a q1
a q2
q
61
Casamento de Padres e
Expresses Regulares
63
Padres Bsicos
64
Padres compostos
L( + ) = L( ) L()
65
x casa com se x casa com ambos e
L( ) = L() L()
x casa com ou se existem cadeias y e z tal que y
casa com , z casa com e x = yz.
L() = L()L()
x casa ~ se x no casa com .
L(~) = ~ L( ) = * \ L()
Esta definio depende de .
66
x casa * se x pode ser dividido na concatenao de
vrias (talvez nenhuma) cadeias finitas, x=x1x2x3xn, n 0
tal que cada xi casa com .
L(*) = {x1x2x n| n0 e xiL(),1 i n} = L()0 L()1
L()2 = L()*
67
EXEMPLOS
* = L(@) = L(#*)
Conjuntos com um nico smbolo: se x * , ento, x por
se s um padro e casa somente com a cadeia x, i.e , {x}
= L(x)
Conjuntos finitos: se x1 , , xm * , ento
{x1, x2 , , xm } = L(x1 + x2 + + xm )
68
cadeias contendo pelo menos 3 ocorrncias de a:
@a@a@a@
cadeias contendo um a seguido mais tarde por um b,
isto cadeias da forma xaybz para algum x, y, z
@a@b@
\{a} # (~a)
cadeias sem a ocorrncia da letra a (# (~a) ) *
69
Algumas Questes Importantes
70
Quais operadores so redundantes?
pois equivalente a ~(#@) e a *
@ pois equivalente a #*
# se = a1 , a2 , , an ento #
equivalente a a1 + a2 + + an .
equivalente a ~(~ + ~ )
71
Todos os padres so equivalentes a um padro usando
somente o padro bsico a para a , e os
operadores ~,+ , * e . Padres usando somente estes
smbolos so chamados expresses regulares.
72
Evitando Parntesis
+ e So associativas, i. e.
L(+(+)) = L((+)+)
L(()) = L(()) , e podemos escrever
++
Precedncia:
* ~
Menor
+
73
Equivalncia de Padres, Expresses
Regulares e Autmatos Finitos
Teorema:
Seja A *. As trs afirmaes abaixo so equivalentes:
(i) A regular; i.e., A = L(M) para algum autmato finito M.
(ii) A = L( ) para algum padro
(iii) A = L( ) para alguma expresso regular .
74
Prova: (iii) (ii)
75
(ii) (i)
76
Note que:
- o conjunto unitrio { a } regular, a
- o conjunto unitrio {} regular
- o conjunto vazio regular, uma vez que cada um dest
conjuntos um conjunto aceito por algum autmato.
a
q0 q1 q0 q0
(1) (2)77
Mostramos previamente que os conjuntos regulares
so fechados sobre o conjunto de operaes , , ~ ,
*, e, , i.e. , se A e B so conjuntos regulares ento A
B, A B,
~A = *\ A, AB e A* so regulares.
Seja um dado padro. Queremos mostrar que L()
um conjunto regular. Procedemos por induo na
estrutura de .
78
O padro de uma das seguintes
formas:
79
So cinco casos base (i) - (v) correspondendo aos
padres atmicos e cinco casos de induo
correspondendo aos padres compostos.
Para (i) - (iii) temos L(a) = {a} para a , L() = {}
e L() = estes so conjuntos regulares.
Para (iv) e (v), argumentamos antes que os operadores
# e @ so redundantes logo podemos desconsiderar
estes casos.
80
Para (vi), lembre que L(+) = L()L() pela
definio do operador +. Pela hiptese da induo,
L() e L() so regulares. Como conjuntos regulares
so fechados sobre a unio, L(+) = L() L()
regular.
81
convertendo autmatos em expresses
regulares (I) (iii)
Dado um subconjunto de estados T de um AFND M e
estados u e v, construamos a expresso regular:
Tuv
representando o conjunto de todas as cadeias x tal que
existe um caminho de u para v em M rotulado x (isto
, (u, x) = v) e todos os estados no caminho, com a
possvel exceo de u e v estarem em T.
82
As expresses so construdas por induo no
tamanho de T.
Base T =
Seja a1, , ak todos os smbolos em tal que
(u, ai) = v.
{a1, , ak}
uv = a1 + + ak se u v
a1 + + ak + se u = v
83
Induo T
Escolha um elemento qualquer q T
qqT-{q}
uqT-{q} qvT-{q}
q
u v
uvT-{q}
84
Note que qualquer caminho de u para v com todos os
estados intermedirios em T ou :
(i) nunca visita q : uvT-{q} ou
(ii) visita q uma primeira vez: uqT-{q}
Seguido por um nmero finito ( zero) de laos de q
para q sem visitar q no meio tempo e ficando em q :
(qqT-{q} )*
Seguido por um caminho de q para v deixando q pela
ltima vez
qvT-{q}
85
A expresso:
86
Ex: Converta o autmato em uma expresso regular
equivalente .
1
q
0 p 1 0
0 r
87
1
pp {p,q,r} T={p,q,r}
q
0
p 1 0
Tuv = uvT-{q} + uqT-{q} (qqT-{q} )* qvT-{q}
0 r
Remova q T- {q}
qp{p,r} = 000*
89
Exemplo: A linguagem L={ an bn|n0} no regular.
90
aaaaaaaaaabbbbbbbbbb
n n
q0 r
91
Quebre anbn em 3 pedaos u, v, w onde v a
cadeia de as percorrida entre duas ocorrncias de
p.
q0 u p v p w r
92
Seja j=|v|>0 (j=4, no exemplo)
* (q0,u) = p
* (p,v) = p
* (p,w) = r F
93
*(q0,uw) = *(*(q0,u),w)
= *(p,w)
=rF
aaaaaa bbbbbbbbbb
q0 p r
u w
95
Prova
Sejam q0, q1,, qn os estados do AFD que reconhece L.
Agora tome uma cadeia w L tal que |w|=km=n+1.
Seja q0,qi,qj, ,qf o conjunto de estados do autmato
no reconhecimento de w. Como esta cadeia tem no
mnimo n+1 entradas, pelo menos um estado deve ser
repetido, e tal repetio no deve comear aps o n-
simo movimento.
96
Portanto, a sequncia deve ter a seguinte forma
q0,qi,qj, ,qr, ,qr, , qf
indicando que devem existir subcadeias x, y, z de w tal
que
*(q0,x)=qr, *(qr,y)=qr, *(qr, z)=qf com |xz| < n+1 = m
e |y|1.
Donde segue imediatamente que
*(q0,xz)=qf, *(q0, xy2z)=qf, *(q0,xy3z)=qf ...
q.e.d
97
Gramticas
Gramtica uma ferramenta comum e poderosa para
definir linguagens.
Definio: Uma gramtica G uma qudrupla G=(V, T, S,
P) onde:
V um conjto finito de variveis ou smbolos no-terminais;
T um conjunto finito de smbolos terminais;
S V um smbolo especial chamado de smbolo inicial ou
varivel de incio;
P um conjunto finito de produes
98
As regras de produo so da forma x!y, onde x um
elemento de (VT)+ e y est em (VT)*.
As produes so aplicadas como segue:
dada uma cadeia w da forma w=uxv, dizemos que a produo
aplicvel a esta cadeia e podemos us-la para trocar x por y,
obtendo assim uma nova cadeia z=uyv
Isto escrito por wz (w deriva z ou z derivada de w
ou z deriva de w).
99
Se w1w2...wn, dizemos que w1 deriva wn e
escrevemos w1*wn
* indica que foi tomado um nmero no-especificado
de etapas (incluindo zero) para derivar wn de w1. Logo
w*w sempre se d.
Para indicar que pelo menos uma produo foi aplicada,
escreve-mos w+v
100
Aplicando as regras de produo em ordens
diferentes, uma gramtica pode gerar muitas
cadeias a partir do S. O conjunto de todas tais
cadeias composta apenas de smbolos terminais
a linguagem definida ou gerada pela gramtica.
101
Linguagem Gerada
Definio: Seja G = (V, T, S, P) uma gramtica. Ento o
conjunto L(G) = {wT* | S*w} a linguagem gerada
por G.
Se w L (G), ento a sequncia Sw1w2
wnw uma derivao da sentena (ou palavra) w.
102
Exemplo
G = <{S}, {a,b}, S, P> onde P dado por SaSb e S
Ento SaSb aaSbb aabb
Logo podemos escrever S*aabb
Uma gramtica define completamente L(G), porm pode
no ser fcil obter uma descrio explcita da linguagem a
partir da gramtica.
Neste exemplo, no entanto, no difcil conjecturar que
L(G)={anbn|n0}
103
Gramticas Regulares
104
Uma gramtica regular uma que ou linear direita
ou linear esquerda.
Observe que numa gramtica regular no mximo
aparece uma varivel no lado direito de qualquer
produo. Alm disso, essa varivel est mais
esquerda ou mais a direita de qualquer produo.
105
Exemplos
G1 = ({S},{a,b},S,P1), P1: SabS|a linear direita.
SabS ababS ababa
L (G1) a linguagem L((ab)*a)
G2 = ({S,S1,S2},{a,b},S,P2), com produes SS1ab,
S1S1 ab|S2, S2a linear esquerda.
S S1abS1ababS2ababaabab
L(G2) a linguagem L(a(ab)+)
106
Cuidado!
A gramtica
G=({S,A,B},{a,b},S,P)
com produes
SA AaB| BAb
no regular!
107
Gramticas Lineares Direita
Geram Linguagens Regulares
Construir um AFND que simula as derivaes de uma
gramtica linear direita.
AbcDAbcdE por DdE
O AFND vai do estado D para o estado E quando o
smbolo d for encontrado.
108
Teorema. Seja G = (V, T, S, P) uma gramtica linear
direita. Ento L(G) uma linguagem regular.
Prova. Assumir V={V0,V1,,Vp}, com S=V0 e que
temos produes da forma
V0v1Vi,Viv2Vj, , ou Vnvl,
109
Se w uma cadeia em L(G), ento por causa das
formas das produes em G, a derivao deve ter
a forma da equao acima.
V0 v1Vi
v1v2Vj
* v1v2 vk Vn
v1v2 vk ve = w
110
O autmato a ser construdo reproduzir a derivao,
consumindo cada um desses vs.
O estado inicial do autmato ser rotulado V0, e para cada
Vi existir um estado no final rotulado Vi.
Para cada Via1a2amVj definire-mos tal que
*(Vi,a1a2am)=Vj
Para cada Via1a2am , *(Vi,a1a2am)=Vf, onde Vf um
estado final. Os estados intermedirios no so de
interesse e podem ser dados rtulos arbitrrios.
111
a1 a2 am
vi vj
...
representa Via1a2amVj
a1 a2 am
vi vf
representa Via1a2am
112
Suponha agora que w L (G). No AFND existe uma
aresta de V0 a Vi rotulada v1, de Vi a Vj rotulada v2, etc.,
tal que Vf *(V0, w), e w aceita por M.
113
Portanto, w deve ter a forma w=v1v2vkvl e a
derivao
V0v1Viv1v2Vj*v1v2vkVk
v1v2vkvl
possvel. Logo W est em L(G), e assim o teorema
est provado.
114
Exemplo
Construir um autmato que aceita a linguagem gerada
pela gramtica
V0aV1
V1abV0 |b
115
A primeira regra de produo cria uma aresta rotulada a
entre V0 e V1. Para segunda regra, precisamos introduzir
um vrtice adicional tal que existe um caminho rotulado
ab entre V1 e V0.
116
Finalmente, precisamos adicionar uma aresta
rotulada b entre V1 e Vf
a b
v0 v1 vf
b a
v2
117
Gramticas Lineares Direita Para
Linguagens Regulares
Comeamos agora do AFD para a linguagem e
invertemos a construo do teorema anterior
Os estados do AFD tornam-se as variveis da
gramtica, e
Os smbolos que causam as transies tornam-se
os terminais nas produes
118
Teorema: Se L uma linguagem regular sobre o alfabeto
, ento existe uma gramtica linear direita G =
(V,,S,P) tal que L = L(G).
119
Prova: Seja M = (Q,,,q0, F) um AFD que aceita L.
Assumiremos que Q = {q0,q1,, qn) e = {a1, a2,am}.
Vamos construir uma gramtica linear direita G = (V, ,
S, P) com V = {q0, q1,,qn} e S = q0.
Para cada transio (qi, aj) = qk de M, colocamos em P a
produo qiajqk.
Alm disso, se qk est em F, acrescentamos a P a produo
qk.
120
Primeiro mostramos que G definida dessa maneira
pode gerar toda cadeia em L. Considere w L da
forma
w = aiajakal.
Para M aceitar essa cadeia ele deve se movimentar
via
(q0, ai) = qp,
(qp, aj) = qr,
...
(qs, ak) = qt,
(qt, al) = qf F
121
Por construo, a gramtica ter uma produo
para cada um desses s. Portanto, podemos fazer a
derivao
q0aiqpaiajqr*aiajakqt
aiajakalqfaiajakal
com a gramtica G, e w L(G).
122
Inversamente, se w L(G), ento sua derivao deve ter
a forma da equao acima, mas isto implica que
(q0, ai, ajakal) = qf,
completando a prova.
q.e.d.
123
Equivalncia Entre Linguagens
Regulares E Gramticas
Regulares
Os resultados anteriores estabelecem a conexo entre
linguagens regulares e gramticas lineares direita.
Podemos fazer uma conexo anloga entre linguagens
regulares e gramticas lineares esquerda, mostrando
assim, a equivalncia de gramticas e linguagens
regulares.
124
Teorema.
125
lgebra de Kleene e Expresses
Regulares
significa que L()=L().
+(+) (+)+
+ +
+
+
() ()
126
(+) +
(+) +
+* +* *
+ *
+ *
algumas consequncias teis:
()* ()*
(*)** (+)*
*(*)* (+)*
(+)* *
127
a expresso abaixo:
pp{p,q,r} = 0* + 0*1 ( + 01 + 000*1 )*000*
pode ser simplificada uma vez que:
+ 01 + 000*1 + 0( + 00*)1
+ 00*1
logo:
pp{p,q,r} = 0* + 0*1 ( + 00*1)*000*
128
Usando o Lema do Bombeamento
Ilustraremos o uso do lema para mostrar que
A={anbm|nm}
no regular.
Suponha A regular, ento sejam w=akbk e m como no
lema com decomposio x, y e z
Pumping Lemma: Seja L uma linguagem regular. Ento existe um inteiro positivo
m, tal que w L com |w| m pode ser decomposta como w= xyz com |xz|
m e |y|1 tal que wi=xyiz est tambm em L para todo i = 0,1,2, ...
129
possveis decomposies:
y seria composta s de as; ou
y seria composta s de bs;
y no pode ser composta de as e bs.
no primeiro caso w0A;
no segundo, w2A
130
C={an! | n0} no regular!
Se C regular, sejam w=ak! e m como no lema com
decomposio x, y e z e tamanhos j, n e l.
Pelo lema para cada i existe p tal que |wi|=p!. Ento
seja i=(k+1)!+1.
p! = |wi| = j+in+l = k!+(i-1)n =
= k!+(k+1)!n = k!(1+(k+1)n)
dividindo os extremos por k! :
p(p-1)(p-2)(k+2)(k+1)=1+n(k+1)
o que um absurdo!!
131
Um Truque
algumas vezes ajuda utilizar o truque de se tomar
interseo na prova de que algum conjunto no regular.
se encontrarmos L regular com AL no regular
(conhecido) ento A no regular
132
Exemplos
133
Exerccios
134
Exerccios
135
Exerccios
136
Exerccios
5. Mostre que os conjuntos abaixo no so regulares:
(a) {anbm | n=2m}
(b) {x{a, b, c}* |x palindrome, I.e., x=rev(x)}
(c) {x{a, b,c}* | o tamanho de x um quadrado}
(d) O conjunto PAREN de cadeias de parentesis balanceada. Por
exemplo, a cadeia ( ( ( ) ( ) ) ( ) ) est em PAREN mas a cadeia )
( ( ) no est.
137
Uma variao do Lema do
Bombeamento
Reformularemos o enunciado do Lema de maneira a
torn-lo mais facilmente aplicado em algumas situaes.
138
Variao do Lema
Teorema. Seja A um conjunto regular. Ento a seguinte
propriedade se d sobre A:
Pumping Lemma: Seja L uma linguagem regular. Ento existe um inteiro positivo
m, tal que w L com |w| m pode ser decomposta como w= xyz com |xz|
m e |y|1 tal que wi=xyiz est tambm em L para todo i = 0,1,2, ...
139
Negando (P)
Teorema. Seja A um conjunto de cadeias e suponha que:
Ento A no regular.
(P) Existe k0 tal que para quaisquer cadeias x,y,z com
xyzA e |y|k, existem cadeias u,v,w tais que y=uvw,
v, e para todo i0, a cadeia xuviwzA
140
Jogando contra o diabo
141
Exemplo de Uso
No exerccio 5 ltimo foi pedido para mostrar que
{x{a, b, c}* |x palndromo, i.e., x=rev(x)} no regular.
Dado k do diabo basta escolher x= , y=ak e z=bak.
Qualquer escolha u,v,w do diabo com, digamos |v|=m>0,
basta escolher i=0 e
xuv0wz=xuwz=ak-mbakA
142
Minimizao de Estados
remover estados inalcanveis ou colapsando
estados equivalentes.
a b a
a,b
a,b
b
a
a b a
a b
b
b a a 143 b
Um autmato mnimo
a b a
b
a
a,b
144
Resumindo ...
dado M = (Q, , , s, F):
Livrar_se dos estados inalcanveis, i.e. dos estados q tais que
no existe cadeia x * tal que *(s,x)=q.
Colapse estados equivalentes
145
Mais exemplos
a a,b
a,b a,b
a,b
b a,b a,b
a
a a,b
a,b
b a,b
a,b a,b
b
a,b
b
146 a,b
a
Ainda mais exemplos
a
a a,b
a,b
b a,b
a,b
b
a,b
b a,b
a
147
A Construo do Quociente
148
nunca colapsaremos um estado que rejeita com
um que aceita:
p=*(s,x)F e q=*(s,y)F
colapsar p com q aceitar y ou rejeitar x.
o colapso de p e q implica no colapso de (p,a)
com (q,a)
149
A equivalncia
150
no difcil mostrar que de fato uma relao de
equivalncia.
[p]:={q|qp}
pq sss [p]=[q]
151
O Autmato Quociente
Dado M, definamos
M/ = (Q,, ,s, F)
onde:
Q={[p] | pQ}
([p],a)=[(p,a)]
s=[s]
F={[p] | pF}
152
Resultados teis
Lema3. *([p],x)=[*(p,x)]
153
Teorema. L(M/)=L(M)
Prova. Para x *,
154
M/ no pode ser mais colapsado
Defina
[p]~[q]
sss
x*(*([p],x)F*([q],x)F)
155
[p]~[q]
x*(*([p],x)F*([q],x)F)
x*([*(p,x)]F[*(q,x)]F) lema 3
x*(*(p,x)F*(q,x)F) lema 2
pq
[p]=[q]
156
Algortmo de Minimizao
1. Escreva uma tabela dos pares {p,q}, inicialmente
desmarcados
2. Marque {p,q} se pF e qF ou vice_versa.
3. Repita at no poder mais: se existe um par desmarcado
{p,q} tal que {(p,a),(q,a)} marcado para algum a,
ento marque {p,q}.
4. Quando acabar 3, pq sss {p,q} desmarcado.
157
Exemplo
a 3
1
a a,b a,b 1
_
b
2
_ _
0 5
b 3
_
_
_
a,b
b 4
_
_
_ _
2 4
a
5
_
_ _
_
_
1. Escreva uma tabela dos pares {p,q},
inicialmente desmarcados 0 1 2 3 4
2. Marque {p,q} se pF e qF ou vice_versa.
a,b a,b
3. Repita at no poder mais: se existe um par a,b
desmarcado {p,q} tal que {(p,a),(q,a)}
marcado para algum a, ento marque
{p,q}.
4. Quando acabar 3, pq sss {p,q} 158
a,b
desmarcado.
Corretude do Algortmo
Q={{p,q} | p,qQ} X:= F
={{p,q} | pq} {{p} | pQ} repeat
X:=X
logo existem X:=X {{p,q}|a. ({p,q},a)X}
( )n + n=(n2+n)/2.
2
until X=X
159
Corretude do Algortmo
X = {{p,q} | x*. *({p,q},x}F}
= {{p,q} | (pq)}
160
Linguagens Livre de Contexto
<bool-expr>::=<arith-expr><comp-op><arith-expr>
<comp.-op>::=<|>||||=|
<arith-expr>::=<var>|<const>|
(<arith-expr><arith-op><arith-expr>)
<arith-op>::=+ | - | *| /
<const>::=0|1|2|3|4|5|6|7|8|9
<var>::=a|b|c||x|y|z
BNF (Backus-Naur form)dando a definio formal de uma
linguagem de programao.
161
Mais Exemplos
162
Gramticas Livre De Contexto
As produes numa gramtica regular so restritas de
duas formas:
o lado esquerdo deve conter uma nica varivel,
enquanto o lado direito tem uma forma especial.
Para criar uma gramtica mais poderosa, devemos
relaxar algumas dessas condies .
163
Definio: Uma gramtica G=<V,T,S,P> livre de
contexto se todas as produes em P tem a forma
Ax, onde AV e x(VT)*.
164
Exemplos
G=<{S},{a,b},S,P>, com produes SaSa; SbSb, S
Uma derivao tpica nessa gramtica
SaSaaaSaaaabSbaaaaabbaa
Isto torna claro que L(G)={WWR|W{a, b}*}
165
Mais Exemplos
A gramtica
G=<{S, A, B}, {a, b}, S, P>,
onde P
SabB; AaaBb; BbbAa; A
L(G)={ab (bbaa)n bba (ba)n |n0}
Exerccio: Mostre!
166
Derivao Mais Esquerda e Mais
Direita
168
Exemplos
Considere a gramtica com produes
SaAB, AbBb, BA|
uma derivao mais esquerda da cadeia abbbb:
SaABabBbBabAbBabbBbbBabbbBabbbb
uma derivao mais direita:
SaABaA abBbabAbabbBbbabbbb.
169
rvores de Derivao
170
Exemplo
Aa b A B c
a b A B c
171
Definio
Seja G=<V, T, S, P> uma gramtica livre de contexto. Uma rvore
ordenada uma rvore de derivao para G se e somente se
ela tem as seguintes propriedades:
1. A raiz tem rtulo S
2. Toda folha tem rtulo de T{}
3. Todo vrtice interior tem um rtulo de V.
4. Se um vrtice tem rtulo A V, e seus filhos so
rotulados(da esquerda para direita) a1, a2, ,an, ento P deve
conter uma produo da forma Aa1a2an
5. Uma folha rotulada o seu pai no tem nenhum filho alm
daquele rotulado .
172
rvore de derivao parcial:
Uma rvore que tem as propriedades 3, 4 e 5 mas no
necessariamente 1 e
a propriedade 2 trocada por:
2a.Toda folha tem rtulo em VT{}
173
cadeia gerada
A cadeia de smbolos obtida lendo-se, da esquerda
para direita, omitindo qualquer encontrado,
diz-se gerada pela rvore.
Exemplo: Considere a gramtica G, com produes
SaAB AbBb BA |
174
Exemplo (a)
b B b
175
Exemplo (b)
a rvore (b) uma rvore de derivao.
A cadeia gerada, abbbb uma sentena de L(G).
SaAB AbBb BA |
(b) S
a B
A
A
b B b
b B b
176
Relao entre Formas Sentenciais
e rvores de Derivaes
rvores de derivao do uma descrio explcita e
compreensvel de derivaes.
Assim como grafo de transies para autmatos finitos,
elas so teis nos argumentos.
177
Teorema
Seja G=<V, T,S, P> uma gramtica livre de contexto.
Ento pra todo wL(G) existe uma rvore de derivao
G cuja cadeia gerada w.
Inversamente a cadeia gerada por qualquer rvore de
derivao est em G.
Alm disso, se tG qualquer rvore de derivao parcial
para G cuja raiz rotulada S, ento tG gera uma forma
sentencial de G.
178
Prova
179
Prova (cont.): base
180
Prova(cont.): passo
181
Prova(cont.): passo
Agora qualquer w derivvel em n+1 etapas deve ser tal que
S*x A y, x, y (V U T)*, A V
em n etapas, e
x A yx a1, a2amy = w,
ai VT.
182
mas por hiptese de induo existe uma rvore de
derivao parcial que gera x A y.
como G deve ter produo Aa1a2am, expandindo as
folhas rotuladas A, obtemos uma rvore de derivao
parcial que gera w.
Logo, por induo, o resultado verdadeiro para toda
forma sentencial.
183
Usando um argumento anlogo, podemos mostrar que
toda rvore de derivao parcial representa alguma
forma sentencial.
Uma rvore de derivao uma rvore de derivao
parcial cujas folhas so terminais.
Logo toda sentena em L(G) gerada por alguma
rvore de derivao de G e toda rvore de derivao
gerada est em L(G).
q.e.d
184
rvores de derivao mostram quais produes so
usadas para se obter uma sentena, mas no d a ordem
de suas aplicaes.
rvores de derivaes so capazes de representar
qualquer derivao, refletindo o fato de que esta ordem
irrelevante, uma observao que nos permite fechar o
buraco na discusso anterior.
185
Por definio, qualquer wL(G) tem uma derivao mais
a esquerda e uma mais a direita.
dada uma rvore de derivao, podemos sempre obter
uma derivao mais a esquerda pensando na rvore como
tendo sido construda de tal modo que a varivel mais a
esquerda foi sempre expandida primeiro.
Todo w L(G) tem pelo menos uma derivao mais a
esquerda e uma mais a direita.
186
Anlise (Parsing)
Dada uma cadeia de terminais w, queremos saber se
wL(G) ou no.
Se for o caso, poderemos querer achar uma derivao de
w.
Um algoritmo que pode nos dizer se wL(G) um
algoritmo de pertinncia
o termo anlise descreve o modo de achar uma sequncia
de produes pela qual derivada wL(G).
187
anlise bvia se w est L(G):
construir todas as possveis (e.g. as mais esquerda) derivaes e
verificar se alguma coincide com W.
anlise de pesquisa exaustiva
Problemas:
no eficiente;
possvel que ele nunca termine wL(G).
188
Ambigidade
189
Exemplo: A gramtica com produes SaSb | SS |
ambgua.
aabb tem duas rvores de derivao:
S S
S S
a S b
a S b
a S b
a S b
190
Solues
Reescrever a gramtica tal que exista somente uma anlise
possvel;
191
Ambigidade Inerente
no-ambgua:
existe uma gramtica para L que no-ambgua;
inerentemente ambgua
se toda gramtica para L ambgua.
e.g.:
L={anbncm|n,m>0}{anbmcm|n,m>0}
192
Formas Normais
A definio de uma GLC no impe qualquer restrio no
lado direito de uma produo.
Em muitas situaes (aplicaes) desejvel colocar
restries.
Estudaremos mtodos de transformar uma GLC arbitrria
numa equivalente que satisfaz certas restries sobre sua
forma.
193
Forma Normal de Chomsky
ABC ou Aa
onde A, B, C V e a T.
194
Forma Normal de Greibach
Aa B1 B2Bk
195
Teorema de Normalizao
Teorema:
Para toda GLC G, existe uma GLC G na forma normal de
Chomsky e uma GLC G na forma normal de Greibach
tal que
L(G)=L(G)=L(G) - { }
196
Remoo de Produes Unitrias AB e -
Produes
Lema:
Para qualquer GLC G=(N, , P, S), existe uma GLC G sem
-produo e sem produo unitria tq L(G)=L(G) - {}.
197
Prova
198
Podemos construir P indutivamente de P adicionando
produes para satisfazer (a) e (b).
Seja G a gramtica G=(N, , P^, S) como P P:
L(G) L(G), obviamente!
mas L(G)=L (G), porque cada nova produo adicionada
pode ser simulada pela produo que a adicionou.
199
Agora mostramos que para cada cadeia no nula x,
qualquer derivao S*G^ x de tamanho mnimo no
usa -produo nem produo unitria.
Seja x considere a derivao de tamanho mnimo
S*G^ x. Suponha para a contradio que A
usada em algum ponto da derivao S*A
*x com ou no nulo.
200
esta ocorrncia de A aparece na derivao quando uma
produo da forma B A aplicada:
Sm B A n A *x para algum
m,n,k0.
201
Um argumento similar mostra que produes unitrias
no so usadas em derivaes de tamanho mnimo.
Seja x e considere a derivao de tamanho mnimo
S*G^ x. Suponha que AB usada em algum momento
S*A B *x.
a ocorrncia de B desaparece aplicando a produo B
mais tarde:
SmA Bn B kx
202
Mas pela regra (b), A est tambm em P e esta
produo poderia ter sido usada dando uma
derivao menor para x: SmA n
kx
Isto contradiz o tamanho mnimo da derivao.
Logo as -produes e produes unitrias podem ser
descartadas!
qed
203
Transformando para a forma
normal de Chomsky.
SPG s consideraremos gramticas sem - produes e
produes unitrias:
Para cada a, introduza um novo no terminal Aa e a
produo Aa a, e troque todas as ocorrncias de a no
lado direito das antigas regras (exceto das regras de forma
B a) por Aa.
204
Ento todas as produes so de uma das duas formas
Aa ou AB1B2Bk, k2
onde os Bi so no terminais.
205
Para qualquer produo A B1B2. Bk com K>2, introduza
um novo no terminal C e troque esta produo por duas
A B1C e C B2B3 Bk ..
206
Exemplo
Derive a gramtica na forma normal de Chomsky para o
conjunto
{anbn | n0} - {} = {anbn | n 1}.
pegue gramtica para {anbn | n0} :
SaSb|
Removendo as - produes temos:
S aSb | ab
que gera {anbn | n 1}.
207
Adicionamos no-terminais A, B e trocamos as
produes para:
S ASB| AB A a B b
Adicionamos um no-terminal C e trocamos
B ASB por S AC C SB.
208
AUTMATO A PILHA
fita de entrada
esquerda p/ direita, read only
x1 x2 x3 x4 x5 x6 ... xn
A1
A2
Q A3
pilha
unidade push/pop A4
de controle z
209
Definio NPDA
autmato a pilha no-determinstico
M=< Q,,,,q0,z,F>
Q estados
alfabeto da fita
alfabeto da pilha
q0Q estado inicial
z smbolo de incio da pilha
FQ estados finais
funo de transio
: Q x ( U {} ) x Q x *
210
se ( (p,a,A),(q,B1B2. Bk ) ) isto significa intuitivamente
que quando a mquina est no estado p lendo o smbolo
a (na fita de entrada) e A (no topo da pilha), ela tira A da
pilha, coloca B1B2. Bk na pilha (Bk primeiro e B1 por
ltimo), move a cabea para a direita uma clula
passando o smbolo a e entra no estado q.
211
EXEMPLO: Considere o npda com
Q={q0,q1,q2,q3),={a,b},={0,1}, z=0, F = {q3} e
(q0,a,0)={(q1,10),(q3,)}
(q0, ,0) = {(q3,)}
(q1,a,1) = {(q1,11)}
((q1,b,1) = {(q2,)}
(q2,b,1) = {(q2,)}
(q2, ,0) = {(q3,)}
212
No so especificadas transies para todas as
combinaes possveis de entradas e smbolos da pilha;
Uma transio no especificada vai para o conjunto vazio
e representa uma configurao morta do npda;
Transies cruciais
(q1,a,1) = {(q1,11)} adiciona 1 a pilha quando lido um a ;
(q2,b,1) = {(q2,)} remove 1 quando um b encontrado.
213
Estas duas etapas contam o nmero de as e compara este
nmero com o nmero de bs.
A unidade de controle fica no estado q1 at ser encontrado
o primeiro b e a entra no estado q2. Isto assegura que
nenhum b precede o ltimo a.
Aps analisar as transies restantes, veremos que o npda
terminar no estado final q3 se e somente a cadeia de
entrada est na linguagem
L = {anbn | n 0} {a}
214
A tripla (q,w,u), onde q o estado da unidade de
controle, w a parte no lida da cadeia, e u o contedo da
pilha (com o smbolo mais a esquerda indicando o topo da
pilha) chamada uma descrio instantnea do autmato a
pilha.
215
Um movimento de uma descrio instantnea para
outra ser denotada pelo smbolo |
(q1,aw,bx)|(q2 ,w,yx)
possvel se e somente se
(q2,y)(q1,a,b)
|* |+ |m
216
A Linguagem Aceita por um Autmato a
Pilha
217
a linguagem L(M) aceita por M por pilha vazia
L(M)={w|(q0,w,z) |* (p,,), qQ}
218
EXEMPLO.
Considere o npda com Q={q}, ={[,]},
= {,[}, q0=q, z= e
(i) (q,[,) = (q,[)
(ii) (q,[,[) = (q,[[)
(iii) (q,],[) = (q,)
(iv) (q,, ) = (q,)
Transies (i) e (ii) dizem que toda vez que o prximo
smbolo de entrada [,o [ deve ser colocado no topo da
pilha.
219
Transio (iii) diz que quando o prximo smbolo de
entrada ] com um [ no topo da pilha, removemos o [ e
no colocamos mais nada na pilha.
Transio (iv) ocorre quando alcanamos o fim da cadeia
de entrada e queremos retirar da pilha e aceitar o
padro.
Dada a entrada [[[]][]][] a sequncia de configuraes do
autmato at a aceitao da cadeia:
220
(q, [[[]][]][], ) conf. Inicial
(q, [[]][]][], [ ) (i)
(q, []][]][], [[ ) (ii)
(q, ]][]][], [[[ ) (ii)
(q, ][]][], [[ ) (iii)
(q, []][], [ ) (ii)
(q, ]][], [[ ) (ii)
(q, ][], [ ) (iii)
(q, [], ) (iii)
(q, ], [ ) (i)
(q, , ) (iii)
(q, , ) (iv)
221
Obs: A transio (iv) poderia ter sido usada vrias vezes
anteriormente, por exemplo, no primeiro passo levaria a
seguinte configurao
(q,[[[]][]][] , ) e autmato pararia, com a pilha vazia mas
sem ter lido toda a entrada!
222
Autmatos Pilha E Linguagens
Livre de Contexto
Autmatos pilha para linguagens livre de contexto.
Mostrar que para toda linguagem livre de contexto existe
um npda que a aceita.
A idia subjacente construir um npda que possa, em
algum sentido, efetuar uma derivao mais a esquerda de
qualquer cadeia da linguagem.
223
Para simplificar assumiremos que a linguagem gerada
por uma gramtica na forma normal de Greibach.
AaB1B2Bk, k0
224
q o nico estado e estado inicial
, os terminais de G, o alfabeto de entrada de M
N , os no-terminais de G, o alfabeto da pilha de M
a funo de transio
S o smbolo inicial de G, e o smbolo inicial da pilha de M.
conjunto vazio de estados finais de M
Para cada produo A aB1B2Bk em P, contm a
transio
((q,a,A),(q,B1B2Bk) )
225
Exemplo:
Considere o conjunto de cadeias de parnteses balanceadas [ ] e
uma gramtica G.
Abaixo temos as regras de produo de G ao lado da transio
correspondente pela construo vista anteriormente:
226
Considere a entrada x = [ [ [ ] ] [ ] ]
regra | forma sentencial | configurao
S (q,[ [ [] ] [ ] ],S)
(iii) [SB (q,[ [] ] [ ] ],SB)
(iv) [ [ SBSB (q,[] ] [ ] ],SBSB)
(ii) [ [ [ BBSB (q,] ] [ ] ],BBSB)
(v) [ [ [ ] BSB (q,] [ ] ],BSB)
(v) [ [ [ ] ] SB (q,[ ] ],SB)
(ii) [ [ [ ] ] [ BB (q,] ],BB)
S [BS
(v) [[[]][]B (q, ],B) (i)
(ii) S [B
((q,[,S),(q,BS))
((q,[,S),(q,B))
S [SB
(v) [[[]][]] (q,,) (iii)(iv) S [SBS
(q,[,S),(q,SB))
(q,[,S),(q,SBS))
(v) B ] (q,],B),(q,))
227
Lema:Para qualquer z,y*, *, e AN, A *z por
uma derivao a esquerda se e somente se
(q,zy,A) * (q,y, ).
228
Gramticas livre de contexto para autmatos a pilha.
A inversa do teorema acima tambm verdadeira.
A construo reverter o processo de construo de L(M)
= L(G), de modo que a gramtica simule os movimentos do
pda.
Isto significa que o contedo da pilha deve estar refletido na
parte de variveis na forma sentencial, enquanto a entrada
processada o prefixo terminal da forma sentencial.
229
Para simplificar assumamos que o pda M satisfaz:
230
Estas restries no so to severas quanto parece.
Mostre como, dado um pda qualquer, obter um
satisfazendo 1 e 2 acima.
Na construo da gramtica devemos ter uma forma
sentencial que reflita o contedo da pilha.
Observe que a configurao de um pda tambm
envolve um estado que deve ser lembrado.
231
Logo as varveis da gramtica tm que ter a forma
(qiAqj).
(qiAqj)*w sss o pda apaga (desempilha) A da pilha,
indo de qi para qj enquanto l a cadeia w.
se (qj,)(qi,a,A) (tipo 2a), ento
(qiAqj)a
se (qj,BC)(qi,a,A) (tipo 2b), ento
(qiAql)a(qjBqk)(qkBql)
onde qk e ql varrem todo o Q.
como smbolo inicial faa: (q0zqf)
232
Exemplo: seja o pda definido por:
(q0,a,z)=(q0,Az)
(q0,a,A)=(q0,A)
(q0,b,A)=(q1,)
(q1,,z)=(q2,)
233
De (q0,a,A)=(q3,), (q0,b,A)=(q1,) e (q1,,z)=(q2,)
geramos:
(q0Aq3) a
(q0Aq1) b
(q1zq2)
De (q0,a,z)=(q0,Az) geramos:
(q0zqi)a(q0Aq0)(q0zqi)|
a(q0Aq1)(q1zqi)|
a(q0Aq2)(q2zqi)|
a(q0Aq3)(q3zqi)
para i=0,1,2,3
234
E de (q3,,z)=(q3,Az) geramos:
(q3zqi)(q3Aq0)(q0zqi)|
(q3Aq1)(q1zqi)|
(q3Aq2)(q2zqi)|
(q3Aq3)(q3zqi)
para i=0,1,2,3
235
Em M:
(q0,aab,z) | (q0,ab,Az)
| (q3,b,z)
| (q0,b,Az)
| (q1,,z)
| (q2,, )
em G:
(q0z q2) a(q0Aq3)(q3zq2)
aa(q3zq2) aa(q0Aq1)(q1zq2)
aab(q1zq2) aab
236
Teorema. Se L=L(M) para algum pda M. ento L
uma linguagem livre de contexto.
237
Lema do Bombeamento
(Pumping Lemma)
para linguagens livre de contexto
238
Suponha G na FNC e seja m=2k+1, onde k=|V|.
se |w| m, ento uma rvore de derivao para w em G
tem altura mnima > k
D
S
P A P
D
v y
w= =vxy x
S *D *A *vAy *vxy
240
EXEMPLO:
Mostre que L = {anbncn : n 0} no livre de contexto.
241
3a. Se ele escolhe vxy contendo somente as, ento o
bombeamento acarreta obviamente que a cadeia no est
em L.
3b. Se ele escolhe uma cadeia contendo nmero igual de as
e bs ento a cadeia bombeada akbkcm com km pode
ser gerada, e no est em L.
242
De fato, a nica maneira do diabo tentar nos impedir
de vencer tomar vxy tal que vy tenha o mesmo
nmero de as, bs e cs. Mas isto no possvel
pela restrio (2): |vxy| m .
Portanto, L no livre de contexto.
243
Mais Exemplo
L={ww|w{a,b}*} no LC.
244
Ainda mais Exemplo!
L={anbj|n=j2} no LC.
Seja m, do lema e am2bm.
De todas as escolhas possveis aquelas que requerem
mais cuidado tem a forma geral:
u=am2-(k1+p), v=ak1, x=apbm-(k2+q), y=bk2 e z=bq.
bombeando i vezes obteremos m2+(i-1)k1 as e m+
(i-1)k2 bs
245
para termos |vy|>1:
se k1=0 ento k2>1 e uma cadeia com m2 as e m-k2 bs (i=0)
no est em L;
se k2=0 ento k1>1 e uma cadeia com m2-k1 as e m bs (i=0)
tambm no est em L;
se k1,k2>0, com i=0:
(m-k2)2 (m-1)2
= m2 - 2m + 1
< m2 - k1
e a cadeia obtida no est em L.
246
Propriedades das LLCs
fechada sobre unio, concatenao, fecho de Kleene e
homomorfismo;
mas no fechada sob interseo nem complementao!
L1={anbncm|n,m0}
L2={anbmcm|n,m0}
L1L2={anbncn|n0}
L1L2=(L1 L2)
247
Propriedades de Decidibilidade
248
Mquina de Turing e
Computabilidade
249
Outras noes de computabilidade
250
SIMULAO UNIVERSAL OU PROGRAMAS COMO
DADOS.
a b b a b a ...
Q
251
Mquina de Turing:
conjunto finito de estados Q;
uma fita semi-infinita, isto , ela delimitada esquerda
pelo smbolo e infinita a direita;
o cabeote da fita pode se mover para a direita e para
esquerda da fita e pode escrever smbolos sobre a fita;
a entrada da fita de tamanho finito e inicialmente est
logo aps o ( direita);
as infinitas clulas a direita da cadeia de entrada todas
tambm contm o smbolo especial nulo ;
252
funcionamento comea no estado inicial S e o cabeote
sobre ;
a cada passo a MT l o smbolo sobre o ca-beote, e
dependendo deste smbolo e do estado corrente, escreve
um novo smbolo nesta clula, move o cabeote para a
direita ou para a esquerda e entra num novo estado (funo
de transio );
a MT aceita a cadeia de entrada indo para um estado
especial t e rejeita indo para um estado especial r;
para algumas cadeias de entrada a MT pode funcionar
infinitamente sem nunca aceit-la ou rejeit-la.
253
Uma Mquina de Turing uma 9-tupla M =
(Q,,,,,,s,t,r) onde:
Q o conjunto finito de estados;
o alfabeto de entrada (finito);
o alfabeto da fita contendo como um subconjunto
(finito)
\ , smbolo nulo;
\ , delimitador esquerda
: Qx Qxx{L,R}, funo de transio
sQ, estado inicial
tQ, estado de aceitao
rQ, estado de rejeio
254
Restries:
Nunca escrever sobre e nunca se mover para fora da
fita esquerda.
Para todo pQ existe um qQ tal que (p,) = (q,,R)
Uma vez que a TM entra no estado de aceitao/rejeio
ela nunca sai.
Para todo b existe c,c e d,d{L,R} tal que
(t,b) = (t,c,d)
(r,b) = (r,c,d)
255
EXEMPLO:
MT que aceita { anbncn / n 0}.
Informalmente:
A MTcomea no estado inicial S, varre a entrada a direita,
checando se da forma a*b*c*.
Ela no escreve no seu caminho (formalmente ela
escreve o que leu).
At encontrar o primeiro , da troca este smbolo por
um delimitador direita .
256
Agora a MT varre a fita a esquerda apagando o primeiro c
que encontra, ento o primeiro b e tambm o primeiro a.
A MT varre a direita apagando um a, um b, e um c.
A MT continua indo da direita para esquerda (e vice-versa)
apagando uma ocorrncia de cada letra a cada passo.
257
Se em algum passo ela encontra uma ocorrncia de
um smbolo e nenhuma de outra, ela rejeita a cadeia.
Seno, ela vai apagar todas as letras e no passo final
ter somente nulos entre e , neste ponto a MT
aceita a cadeia.
258
Formalmente:
Q={s,q1,,q10,t,r} ={a,b,c} ={,,}
Funo de transio:
a b c
S (S,,R) (S,a,R) (q1,b,R) (r, _ , _ ) (q3,,L) _
q1 _ (r, _ , _ ) (q1,b,R) (q2,c,R) (r, _ , _ ) _
q2 _ (r, _ , _ ) (r, _ , _ ) (q2,c,R) (q3,,L) _
q3 (t, _ , _ ) (r, _ , _ ) (r, _ , _ ) (q4,, L) (q3,,L) _
q4 (r, _ , _ ) (r, _ , _ ) (q5,,L) (q4,c,L) (q4,,L ) _
q5 (r, _ , _ ) (q6,,L) (q5,b,L) _ (q5,,L) _
q6 (q7,,R) (q6,a,L) _ _ (q6,,L) _
q7 _ (q8,,R) (r, _ , _ ) (r, _ ,_ ) (q7,,R) (t, _ _ )
q8 _ (q8,a,R) (q9,,R) (r, _ , _ ) (q8,,R) (r, _ , _ )
q9 _ _ (q9,b,R) (q10,,R) (q9,,R) (r , _, _259
)
q10 _ _ _ (q10,c,R) (q10,,R) (q3,,L)
Configurao inicial (S, x,o)
representa um nmero infinito de s
0 significa que a mquina est varrendo o delimitador
Uma MT aceita uma cadeia de entrada x* se (S, x,0)
* (t,y,n) para algum y e n e
rejeita se (S, x,0)*(r,y,n) para algum y e n.
M pra para uma entrada x se ela aceita x ou rejeita x. M
pode ficar rodando infinita-mente com a entrada x.
O conjunto L(M) representa o conjunto de todas as cadeias
aceitas por M.
260
Um conjunto de cadeias Recursivamente Enumervel
(RE) se L(M) para alguma mquina de Turing M, e
261
Mquinas de Turing com mltiplas fitas
Fitas extras no adicionam poder computacional
a a b b b a ...
b b a b b a a ...
a b b a b a a ...
Q
262
Uma MT com 3 fitas similar a MT com uma fita exceto
que a de 3 fitas tem as 3 fitas e 3 cabeotes de leitura.
Em cada passo a mquina l os trs smbolos sobre seus
cabeotes, e baseada nesta informao e no estado
corrente, ela imprime um smbolo em cada fita, move os
cabeotes (eles no precisam se mover na mesma
direo) e entra num novo estado.
263
A funo de transio do tipo
: Q x 3 Q x 3 x {L,R}3
264
Mquinas de Turing infinita dos dois lados.
Infinitude para ambos os lados no adiciona poder
computacional.
... a b a a b a a b b a a ...
a b a a b ...
265
Podemos quebrar a fita original em qualquer lugar e
simular a MT em uma outra MT infinita s a direita
com duas fitas.
A fita de cima usada para simu-lar a MT original
quando seu cabeote est a direita da quebra, e a
trilha de cima usada para simular a MT original
quando seu cabeote est a esquerda da quebra,
movendo-se na direo oposta.
266
EXERCCIOS
1. Construir uma gramtica livre de contexto para a linguagem
formada pelo conjunto de cadeias sobre {a,b} que no so
Palindromes. Mostre que sua gramtica est correta.
267
Gramticas Tipo 0
( Sem Restrio)
G = (V,T,P ,S) onde as produes de P tem a forma
com e sendo cadeias arbitrrias de smbolos da
gramtica e .
quando P.
L(G) = {W| W T* e S * W}
268
EXEMPLO: A gramtica geradora de {ai |i uma potncia
positiva de 2}
1)SACaB 2)CaaaC
3)CBDB 4)CBE
5)aDDa 6)ADAC
7)aEEa 8)AE
269
C um marcador que se move entre A e B duplicando
o nmero de as pela produo 2.
Quando C alcana o delimitador a direita B ele se
transforma em D ou E pelas produes 3 ou 4.
Se D escolhido ele migra pela produo S at chegar
ao delimita-dor A.
270
Neste ponto D se transforma em C pela produo 6 e
o processo co-mea novamente.
Se E escolhido, o delimitador a di-reita consumido. E
migra para a esquerda pela produo 7 e conso-me o
delimitador a esquerda, resul-tando em uma cadeia de
2i as para i > 0.
271
Equivalncia entre
Gramticas Tipo 0
e Mquinas de Turing
272
PROVA:
Construiremos uma mquina de Turing no-
determinstica com duas fitas M para reconhecer L.
A primeira fita uma fita de entra-da, onde a cadeia W
ser colocada.
A segunda fita usada para armaze-nar a forma
sentencial de G.
M inicializa com S. Ento M repeti-damente faz:
273
1)seleciona, no deterministicamente, uma posio i em
, 1 i | |. Isto , comea na esquerda e
repetidamente se move para direita ou seleciona a
posio atual.
2)seleciona aleatoriamente uma produ-o de G.
3)se aparece comeando na posio i de , troque
por nesta posio (shifting over).
4)compare a forma sentencial resultante com W na fita 1.
Se a forma sentencial for igual a W, aceita w como uma
sen-tena de G. Seno volta para o passo 1.
274
Obs: Todas e somente as formas sentenciais de G
aparecem na fita 2 quando o passo 2 executado
depois de algumas escolhas.
L(M) = L(G) = L ento L recursivamente enumervel.
q.e.d.
275
TEOREMA: Se L uma linguagem recursivamente
enumervel, ento L = L(G) para alguma gramtica tipo 0
G.
276
Linguagens Sensveis ao Contexto
G = (V,T,P,S) onde as produes em P tem a forma
com e sendo cadeias arbitrrias de smbolos da gra-
mtica, e tem que ser pelo menos to grande (longo)
quanto .
O nome sensvel ao contexto vem da forma normal para
estas gramticas onde cada produo tem a forma
1A2 12 com .
277
Isto , a varivel A pode ser substi-tuda pela cadeia
somente no contexto 1 _ 2.
278
Autmatos Linearmente Limitados (ALL)
279
Obs: Um ALL uma MT que, ao invs de ter uma fita
potencialmente infinita para computar, tem
somente uma poro da fita contendo o smbolo x
mais duas clulas contendo os delimitadores.
280
HIERARQUIA DE CHOMSKY
TEOREMA:
(a) os conjuntos regulares esto contidos propriamente
nas linguagens livres de contexto.
(b) LLC no contendo a palavra vazia esto contidas
propriamente nas LSC.
(c) LSC esto propriamente contidas nos conjuntos
recursivamente enumerveis.
281