Anda di halaman 1dari 281

Teoria da Computao

Wilson Rosa de Oliveira


Departamento de Estatstica e Informtica
UFRPE

1
Objetivo Ementa

Dar aos alunos noo formal de Autmatos: Finitos, a Pilha e Mquina de


algoritmo, computabilidade e do Turing (linearmente limitada).
problema de deciso, de modo a Linguagens Formais: Regular, Livre e
deix-lo consciente das limitaes da Sensvel ao Contexto, Estrutura de
cincia da computao. Frases.
Aparelh-los com as ferramentas de Hierarquia de Chomsky.
modo a habilit-lo a melhor Aplicaes em compiladores.
enfrentar a soluo de problemas
Computabilidade: modelos
com o auxlio do computador.
computacionais (funes recursivas,
Dar subsdios para os alunos poderem linguagens de programao), funes
definir linguagens de programao, no computveis, problema da
isto , sua sintaxe e semntica, parada, decidibilidade.
atravs do estudo das gramticas
formais.

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

As aulas so obrigatrias, e a frequncia ser 5acompanhada.


Avaliao

Data Atividade

30/10/2017 Entrega da 1a Lista e Avaliao de laboratrio para a 1a VA


29/11/2017 Entrega da 2a Lista e Prova da 1a VA
27/12/2018 Entrega da 3a Lista e Avaliao de laboratrio para a 2a VA
31/01/2018 Entrega da 4a Lista e Prova da 2a VA
07/02/2018 3a VA
14/02/2018 Final

6
Motivao

O objetivo do curso entender os fundamentos da


computao.
O que significa uma funo ser computvel
Existem funes no - computveis!
Como a capacidade computacional depende das
estruturas de programao
Inmeras aplicaes: expresses regulares em SO,
analisadores lxicos, compiladores, biologia, fsica,
etc.
7
Conceitos
Estado
Transio
No - Determinismo
Reduo

8
Modelos de Computao

Autmato Finito, Expresses Regulares


Autmato a Pilha
Autmatos Lineares Limitados
Mquinas de Turing

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)

Identidade da Cadeia Vazia


x=x=x

|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.

{a,b} = {b,a}, mas ab ba


{a,a,b} = {a,b}, mas aab ab
conjunto com nenhum elemento; vazio.
{} conjunto com 1 elemento, a cadeia vazia.
cadeia vazia, que no conjunto.

15
ESTADO
O Estado de um sistema uma descrio do sistema;
uma fotografia da realidade congelada no tempo.

Um estado d todas as informaes relevantes necessrias


para determinar como o sistema pode evoluir a partir
daquele ponto.

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:

Consiste de somente vrios estados finitos e


transies sobre estes estados.

Modelado atravs de Autmatos 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

M estar no estado q0 ao ver nenhum a


M estar no estado q1 ao ver um a
M estar no estado q2 ao ver dois as
M estar no estado q3 ao ver trs ou mais as.

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}

A * REGULAR se A = L(M) para algum autmato


finito M.
{x {a,b}* | x contm pelo menos trs as} um conjunto
REGULAR. 28
EXEMPLO 2
M = (Q, , , q0, F)
Q = {q0, q1, q2, q3
= {0, 1}
F = {q0 }
x = 110101
(q0 ,1) = q1
0 1 (q1 ,1) = q0 * (q0, 11) = q0
q 0F q2 q1 (q0 ,0) = q2 * (q0, 110) = q2
q1 q3 q0 (q2 ,1) = q3 * (q0, 1101) = q3
q2 q0 q3 (q3, 0) = q1 * (q0, 11010)=q1
q3 q1 q2 (q1 ,1) = q0 * (q0, 110101)=q0
q0 F x L(M)

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

Usar os estados para contar o nmero de as consecutivos que


vimos. Se voc no viu 3 as consecutivos e voc v um b, volte
para o comeo. Uma vez visto 3 as consecutivos permanea no
estado de aceitao.
32
EXEMPLO 4
Considere o conjunto
{x {0,1}* | x representa um mltiplo de 3 em binrio}.
zeros na frente so permitidos
representa o nmero zero
binrio decimal
0 0
11 3
110 6
1001 9
1100 12
1111 15
10010 18
33
EXEMPLO 4

1 0
0 q0 q1 q2 1
1 0

34
Propriedades das Linguagens
Regulares

Para A, B * temos as seguintes definies:


A B = { x | x A ou x B}
A B = { x | x A e x B}
~A = { x * | x A}

Mostraremos que para A e B regulares:


A B, A B e ~A tambm so regulares.

35
A Construo do Produto

Assuma que A e B so regulares, logo existem autmatos


M1 = (Q1, , 1, s1, F1)
M2 = (Q2, , 2, s2, F2)
com L(M1) = A e L(M2) = B

Para mostrar que A B regular, vamos construir o


autmato M3 tal que
L(M3) = A B .

36
Intuitivamente ...

M3 ter os estados de M1 e M2 codificado de alguma


maneira no seus estados.

Para uma entrada x *, M3 simular M1 e M2


simultaneamente em x, aceitando x se somente se
ambos M1 e M2 aceitarem.

37
Intuitivamente ...

M3 ter os estados de M1 e M2 codificado de alguma


maneira no seus estados.

Para uma entrada x *, M3 simular M1 e M2


simultaneamente em x, aceitando x se somente se
ambos M1 e M2 aceitarem.

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, ))

Prova: Por induo em ||


Base: Para || = 0, i.e., x =

3 ((p,q)),) = (p,q) = (1(p,), 2 ((q,)) .


Passo: Assumindo que o lema vlido para *, mostraremos que vlido
para a, onde a .

3 ((p,q)), a) = 3 (3 ((p,q), ), a) Def. de 3


= 3 ( (1(p, ), 2 (q, ) ), a) hiptese da ind.
= (1 (1 (p, ), a), 2 (2 (q, ) a) Def. de 3
= (1 (p, a), 2 (q, a) ) Def. de 1 e 2
40
q.e.d.
Teorema. L(M3) = L(M1) L(M2)

Prova: Para todo *, L(M3)


3 (s3, ) F3 definio de aceita

3 ((s1,s2), ) F1 F2 definio de s3 e F3

(1 (s1, ),2(s2, )) F1 F2 lema

1(s1, )F1, e 2(s2, )F2 definio do

L(M1) e L(M2) def. de aceita.

(L(M1) L(M2)) def. de interseo


41
q.e.d.
Para mostrar que ~A Regular:
Tome o autmato aceitando A e torne os estados finais com os
no-finais. O autmato resultante aceita exatamente o que o
autmato original rejeita, logo o conjunto ~A

A B = ~ ( ~A ~B)

42
AUTMATO FINITO
NO-DETERMINSTICO

O prximo estado no necessariamente unicamente


determinado pelo estado atual e pelo smbolo de
entrada.

Podemos ter zero, uma ou mais transies de estado


com o mesmo smbolo de entrada.

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

q1 q0 tem duas transies com 0 e


1
duas com 1
q2
q1 no tem transio com 0
0,1
q3 no tem transio com 1

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.

01001 aceita por este autmato pois a seqncia de


transies q0 q0 q0 q3 q4 q4

aceita todos as cadeais com dois 1s ou dois 0s


consecutivos.
46
Obs.: Autmatos determinsticos so um caso especial de
autmatos no determinsticos.

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)}

Comeando em q e lendo a cadeia w seguida do smbolo a


ns podemos estar no estado p sss um estado possvel
de se estar aps ler w r e de r podemos ir para p
lendo a.

50
0,1 0,1
0 0
q0 q3 q4

X = 01001 1

(q0 , 0) = {q0, q3 } q1

(q0, 01) = ( (q0, 0), 1) 1


q2
= ( {q0, q3}, 1)
= (q0 ,1) (q3,1)
= { q0, q1}
(q0, 010) = { q0, q3 }
(q0, 0100) = {q0, q3, q4 }
(q0, 01001) = {q0, q1, q4 }
51
autmatos finitos com transies


p q

o autmato vai do estado p para o estado q


sem ler um smbolo de entrada.

52
EXEMPLO 1


s t
u
b b b

p q r

Estando no estado s e recebendo o smbolo b:


ler b e ir para p
ir para t e ento ler b e ir para q

ir para t, ir para u e ento ler b e ir para r.

O conjunto aceito pelo autmato acima


{b, bb, bbb}. 53
EXEMPLO 2

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}.

A maior vantagem de transies a convenincia.


Autmato com transies tem o mesmo poder
computacional que afds e afnds

55
Propriedades de Linguagens
Regulares

Concatenao de dois conjuntos A e B


AB = AB = { xy | x A e y B}
EXEMPLO.
{a, ab} {b, ba} = {ab, aba, abb, abba}

Se A e B so conjuntos regulares, AB tambm .

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.

Os estados finais de N sero os de P.


Finalmente, ligue os estados finais de M ao estado inicial
de N com uma transio .

57
EXEMPLO 4

Seja A = {aa}, B = {bb}

q0 a q1 a q2 q3 b q4 b q5

q0 a q1 a q2 q3 b q4 b q5

58
Fecho de Kleene

Se A regular ento A* tambm .


A* = { } A A2 A3
= { x1x2xn | n 0 e xiA , 1 i n}

59
Prova Intuitiva

Seja M o autmato para A ento P para A* como segue:


Comece com todos os estados e transies de M.
Adicione um novo estado q e uma transio de q
para o estado inicial de M. Faa q o estado inicial de P.
Faa q o nico estado final de P.
Adicione transies dos estados finais de M para o
estado q.

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

O que acontece quando digitamos


rm * no Unix? E rm *.dvi?
Casamento de padres uma aplicao importante da
teoria dos afds.
Seja um alfabeto finito.
Um padro uma cadeia de smbolos de um certo
formato representando um conjunto (possivelmente
infinito) de cadeias sobre *.
62
Casamento de Padres
Padres: Bsicos Compostos
Notao: letras gregas , , ,
Associado a definio de padres, temos quais cadeias x
* casam com os padres definidos.
Notao: L() o conjunto de cadeias em * que casam
um dado padro . L() = {x * | x casa com }

63
Padres Bsicos

a para cada smbolo a , L(a) = {a}


casa com a palava vazia , L() = { }
casa com nada, L() = , o cjto.vazio
# casa com qualquer smbolo em , L(#) =
@ casa qualquer cadeia em *, L(@)=*.

64
Padres compostos

So formados indutivamente usando os operadores:


+* ~
Suponha que definimos os conjuntos de cadeias L() e L()
casando e respectivamente. Ento dizemos:
x casa com + , se x casa ou com ou com

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()*

Note que Padres so cadeias de smbolos sobre o


alfabeto:
{ a | a } {, , #, @, +, , ~, *, (, )}

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

Quo difcil determinar se uma dada cadeia casa um


determinado padro?
Existem algoritmos muitos eficientes, veremos alguns deles.
Esta uma questo prtica.
Todos os conjuntos so representados por algum padro?

(No! Veremos, por exemplo, que o conjunto {an bn | n 0}


no representado por um padro.)

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)

A implicao (iii) (ii) trivial, uma vez que toda


expresso regular um padro por definio.

75
(ii) (i)

O corao desta prova envolve mostrar que outros


conjuntos bsicos (correspondendo aos padres bsicos)
so regulares, e que conjuntos so fechados sobre
operaes de fechamento correspondendo aos
operadores usados para construir padres.

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:

(i) a, para algum a (vi) +


(ii) (vii)
(iii) (viii)
(iv) # (ix) ~
(v) @ (x) *

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.

Para os casos (vii) - (x) use argumentos similares aos


usados em (vii).

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}

Tuv = uvT-{q} + uqT-{q} (qqT-{q} )* qvT-{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:

Qsf1 + Qsf2 + + Qsfk

representa o conjunto de cadeias aceitas por M, onde


Q o conjto. de todos os estados de M,
s o estado inicial e
{ f1 , , fk } o conjunto de estados finais.

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}

{p,q,r} = {p,r} + pq {p,r}(qq{p,r})* qp{p,r}


pp pp

pp{p,r} = 0* pq{p,r} = 0*1 qq{p,r} = + 01 + 000*1

qp{p,r} = 000*

pp{p,q,r} = 0* + 0*1 ( + 01 + 000*1 )*000*


88
Identificando Linguagens No
Regulares

Linguagens regulares podem ser finitas;


Uma linguagem regular sss, em processando qualquer
cadeia, a informao a ser armazenada em qualquer
estgio estritamente limitada.

89
Exemplo: A linguagem L={ an bn|n0} no regular.

Suponha que L regular. Ento existe um AFD M=(Q,


{a,b},S,q0,F) que a reconhece. Seja k o nmero de
estados de M. Consideremos o funcionamento de M na
entrada anbn, onde nk

90
aaaaaaaaaabbbbbbbbbb
n n
q0 r

Como nk, deve existir algum estado p tal que M


est em p mais de uma vez enquanto percorrendo a
parte inicial da seqncia de as (princpio da casa dos
pombos).

91
Quebre anbn em 3 pedaos u, v, w onde v a
cadeia de as percorrida entre duas ocorrncias de
p.

aaaaaa aaaa bbbbbbbbbb

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

Logo podemos remover v o que resultaria numa


cadeia ser erroneamente aceita:

93
*(q0,uw) = *(*(q0,u),w)
= *(p,w)
=rF

aaaaaa bbbbbbbbbb

q0 p r
u w

an-jbn L com j>0, nem an+jmbn com j>0 94e m>1


Lema do Bombeamento
(Pumping Lemma)

TEOREMA: 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, ...

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

Uma gramtica G = <V, T,S,P> diz-se linear


direita se todas as produes so da forma
A xB ou Ax
onde A, B V, e x T*.
e linear esquerda se todas as produes so da
forma
ABx Ax

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.

Inversamente, suponha que w aceita por M. Para


aceitar w o autmato tem de passar pela sequncia de
estados V0,Vi,,Vf usando caminhos rotulados v1,v2,
,vl

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

comeamos do grafo de transio com vrtices V0,V1 e Vf.

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

A linguagem gerada pela gramtica e reconhecida


pelo autmato a linguagem regular L ((aab)*ab)

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.

Uma linguagem regular se e somente se existe uma


gramtica regular G tal que L = L(G).

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

D={x {a,b}*| |x|a=|x|b} no regular pois


DL(a*b*)={anbn|n0}
Se A={anbm|n m} fosse regular tambm o seria
rev A = {bman |n m} (exerccio).
Trocando-se as por bs obtemos A={ambn|n m} que seria
tambm regular.
Mais a a interseo AA={anbn|n0} seria regular, o que um
absurdo!!

133
Exerccios

1.Construir um AFD que reconhece a linguagem


gerada pela gramtica
SabA; AbaB; BaA | bb

2.Construir uma gramtica linear direita para a


linguagem
L ( (aab* abab)*)

134
Exerccios

3. D expresses regulares para cada um dos seguintes


subconjuntos de {a,b}*:
(a) {x|x contm um nmero par de as}
(b) {x|x contm um nmero mpar de bs}
(c) {x|x contm um nmero par de as ou um nmero mpar de
bs}
(d) {x|x contm um nmero par de as e um nmero mpar de
bs}

135
Exerccios

4. D AFD aceitando o conjunto de cadeias casando com


as seguintes expresses regulares:
(a) (000* + 111*)*
(b) (01 +10) (01 +10) (01 +10)
(c) (0 + 1 (01* 0)* 1)*

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.

A reformulao permitir o uso de um mtodo de prova


baseado num jogo contra o diabo

138
Variao do Lema
Teorema. Seja A um conjunto regular. Ento a seguinte
propriedade se d sobre A:

(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

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:

(~P) Para todo k0 existem cadeias x,y,z com xyzA e |y|


k, e para todas cadeias u,v,w tais que y=uvw, v, e
existe i0, tal que cadeia xuviwzA.

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

O diabo quer mostrar que A regular e voc que no!


Ele ento pega k.
Voc vai escolhe xyzA e |y|k.
Da ele pega u,v,w tais que y=uvw, v,
Voc mostra o i0, com xuyivwzA

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

Como saber com segurana que dois estados podem


ser colapsados
como fazer o colapso formalmente?
como determinar se mais colapsos podem ser feitos?

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

Logo, p e q no podem ser colapsados se


*(p,x)F e *(q,x)F
Ento definamos uma relao de equivalncia
sobre Q por:
pq
se, e somente se
x*(*(p,x)F (q,x)F)

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

Lema 1. Se pq, ento (p,a)(q,a). Equivalentemente,


se [p]=[q] ento [(p,a)]=[(q,a)].

Lema2. pF sss [p]F.

Lema3. *([p],x)=[*(p,x)]

153
Teorema. L(M/)=L(M)

Prova. Para x *,

x L(M/) sss *(s,x) F def. de aceita


sss *([s],x) F def. de s
sss [*(s,x)] F lema 3
sss *(s,x) F lema 2
sss x L(M) def. de aceita
qed

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

seja agora : Q Q X o conjunto dos marcados


({p,q},a)={(p,a),(q,a)}
e F ={{p,q} | pF, qF }

159
Corretude do Algortmo
X = {{p,q} | x*. *({p,q},x}F}

= {{p,q} | x*. *(p,x)F,*(q,x)F }


= {{p,q} |(x*.(*(p,x)F*(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

L = {anbn|n0} livre de contexto.


Se em L substituirmos a por ( e b por ), cadeias de
parnteses tais como ( ( ) ) e ( ( ( ) ) ) estaro em L.
L descreve uma estrutura aninhada comum em
linguagens de programao.

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 .

Mantemos a restrio sobre o lado esquerdo, mas


permitimos qualquer coisa no lado direito.

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)*.

A linguagem L livre de contexto sss existe uma


gramtica livre de contexto G tal que L = L(G).

Obs: Toda linguagem regular livre de contexto.

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

G=<{A,B,S},{a,b},S,P> com L(G)={a2nbm|n0, m0}


produes:
1. SAB; S1AB2aaAB3aaB4aaBb5aab
2. AaaA;
3. A; S1AB4ABb
4. BBb; 2aaABb5aaAb
5. B. 3aab

Numero da produo usada 167


Definio:
Uma derivao diz-se mais esquerda se em cada
etapa a varivel mais a esquerda trocada na
forma sentencial.
Se em cada etapa a varivel mais a direita
trocada, dizemos que a derivao 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

Mostra derivaes independente da ordem em que as


produes so usadas.
Uma rvore de derivao uma rvore ordenada onde:
os nodos so rotulados com os lados esquerdos das produes e
o filho de cada nodo representa seus correspondentes lados
direitos.

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)

A rvore (a) uma rvore de (a)


derivao parcial para G.
S
A cadeia abBbB, gerada pela rvore,
uma forma sentencial de G. a B
A
SaAB AbBb BA |

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

Primeiramente, mostraremos que para toda forma


sentencial de G existe uma rvore de derivao
parcial.
Faremos isso por induo no nmero de etapas da
derivao.

179
Prova (cont.): base

Como base, observemos que a afirmao verdadeira pra


toda forma sentencial derivada em uma etapa. Como
Su implica que existe uma produo Su, isto segue
imediata-mente da definio da rvore de derivao.

180
Prova(cont.): passo

Suponhamos que para toda forma sentencial derivvel


em n etapas, existem uma rvore de derivao parcial
correspondente.

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).

Por cause de produes da forma


AB e A

188
Ambigidade

Uma gramtica livre de contexto G ambgua se existe


wL(G) com no mnimo duas rvores de derivao.

ambiguidade a existncia de 2 derivaes esquerda e


direita.

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;

Associar regras de precedncia


(como feito em LP com os + e *)
Esta soluo est completamente fora da gramtica.
existem exemplos onde impossvel remover a
ambiguidade da gramtica.

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

Uma gramtica livre de contexto est na forma normal de


Chomsky se todas as produes so da forma

ABC ou Aa

onde A, B, C V e a T.

194
Forma Normal de Greibach

Uma gramtica livre de contexto est na forma normal de


Greibach se todas as produes tem a forma

Aa B1 B2Bk

para k0, com A, B1, BkV e aT.

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

Seja P o menor conjunto de produes contendo P e


fechado sobre as duas regras:
(a)Se AB P e B P, ento
A P
(b)Se AB P e B P, ento
A P

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.

Mas pela regra (a) B est tambm em P, e esta


produo poderia ter sido usada neste ponto dando uma
derivao menor de x:
SmB n kx
absurdo!

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.

O conjunto de cadeias terminais no muda, somente


temos mais um passo(que antes)para gerar um smbolo
terminal.

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 ..

Continue fazendo estas trocas at que todos os lados


direitos tenham tamanho no mximo 2.

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.

A gramtica na forma normal de Chomsky


S AB|AC A a B b 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

Existem duas definies alternativas para aceitao, por:


pilha vazia ou estado final.
Para um pda M = <Q,,,,q0,z,F> a linguagem L(M)
aceita por M por estado final
L(M)={w|(q0,w,z) |* (p,,M), pF e M*}

217
a linguagem L(M) aceita por M por pilha vazia
L(M)={w|(q0,w,z) |* (p,,), qQ}

Obs: Quando a aceitao por pilha vazia, o


conjunto de estados finais irrelevante, e neste
caso geralmente definimos o conjunto de estados
finais como o conjunto vazio.

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

Construir de G um npda equivalente M com um nico


estado que aceita a linguagem por pilha vazia.
M = ({q},,N,,q,S, )

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:

(i) S [BS ((q,[,S),(q,BS))


(ii) S [B ((q,[,S),(q,B)) Para cada produo
A aB1B2Bk em P,
(iii) S [SB (q,[,S),(q,SB))
contm a transio
(iv) S [SBS (q,[,S),(q,SBS)) ((q,a,A),(q,B1B2Bk) )
(v) B ] (q,],B),(q,))

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, ).

Teorema: L(M) = L(G).


Prova: x L(G)
S * x por uma derivao a esquerda
(definio de L(G) )
(q,x,s) *(q, , ) (lema)
x L(M) definio de L(M).
q.e.d

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:

1. Tem nico estado final qf no qual s entra sss a pilha


estiver vazia.
2. Todas as transies devem ter a forma
(q,a,A)={C1,C2,,Cn}, onde:
Ci=(p,) (a)
ou
Ci=(p,BC) (b)

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,)

no satisfaz condio 2, mas ...


(q0,a,A)=(q3,)
(q3,,z)=(q3,Az)

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

o smbolo inicial (q0zq2).


Vejamos como se comportam M e G em aab:

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

Este lema til para mostrar que uma dada linguagem


no uma linguagem livre de contexto.
Seu uso anlogo quele visto para linguagens regulares.

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

S *vAy *vvAvy *viAyi


239
Teorema. Seja L uma linguagem livre de contexto infinita.
Ento existe algum inteiro positivo m tal que para
qualquer w L com |w| m ela pode ser decomposta
como
w = uvxyz (1)
com
|vxy| m (2)
e
|vy| 1 (3)
tal que, para todo i =0,1,2,:
uvixyiz L

240
EXEMPLO:
Mostre que L = {anbncn : n 0} no livre de contexto.

SOLUO: (dos diabos :-)


1. O diabo escolhe m;
2. tomamos a cadeia ambmcm em L.
3. O diabo tem vrias escolhas.

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.

Considere a cadeia ambm ambm;


uma possvel escolha para uvxyz:
u= am-l, v=al, x=bm-(n+p), y=bn, z=bpambm
mas com i (do lema) igual a zero:
ak bjambm, com k,j<m, e no est em L
outras escolhas so anlogas.

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

Existe algoritmo para decidir se:


L vazia ou no;
L infinita ou no;
xL;
No existe para:
L(G)=*
L(G1)L(G2)
L(G1)=L(G2)
L(G) regular
L(G1)L(G2)=

248
Mquina de Turing e
Computabilidade

Mquinas de Turing so os autmatos mais potentes que


estudaremos.
Elas podem computar qualquer funo computvel;
H at quem acredite que tudo que efetivamente
computvel computvel por uma MT.

249
Outras noes de computabilidade

- clculo (Church 1933);


Funes - recusivas (Gdel 1936);
Combinadores lgicos (Schnfinkel 1924, Curry 1929);
Sistema de Post (Post 1943);
Mquiinas de Turing (Turing 1936-7).
Tese de Church-Turing
Todos os sistemas acima captam a noo de computvel.

250
SIMULAO UNIVERSAL OU PROGRAMAS COMO
DADOS.

Mquina de Turing (Descrio Informal)

a b b a b a ...

ambos sentidos, l/escreve

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

Recursivo se L(M) para alguma mquina de Turing M que


pra em todas as entradas.

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

Chamemos a MT com 3 fitas de M. Podemos


construir uma mquina de Turing com uma fita N
que simula M (EXERCCIO).

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 b a a ... quebre aqui

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.

2. Construa uma gramtica na forma Normal de Chomsky para o


conjunto no vazio de cadeias com o nmero balanceado de
parnteses ( ) e colchetes [ ].

3. Descreva a MT N com uma fita que simula M com trs fitas


(veja notas de aula).

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

A e B so delimitadores a direita e a esquerda das


formas sentenciais.

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

TEOREMA: Se L L(G) para uma gramtica tipo 0


G=(V,T,P ,S), ento L uma linguagem recursivamente
enumervel.

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.

a prova mais elaborada e omitida

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.

Obs: Quase todas as linguagens que trabalhamos so


sensveis ao contexto. As nicas provas que certas
linguagens no so sensveis ao contexto so baseadas
em diagonalizao.

278
Autmatos Linearmente Limitados (ALL)

Um ALL uma mquina de Turing no determinstica


satisfazendo as seguintes condies:
1)o alfabeto de entrada inclui dois smbolos especiais e
s, delimitadores a esquerda e a direita.
2)o ALL no pode se mover a esquerda de nem a direita
de s, nem pode trocar os smbolos e s na fita.

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.

Existe uma equivalncia entre ALL e gramticas


sensveis ao contexto.

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