• Nenhum resultado encontrado

Gram´ aticas e M´ aquinas de Turing

Exerc´ıcios

4.3 Gram´ aticas e M´ aquinas de Turing

Nesta se¸c˜ao, ser´a mostrado que a classe das linguagens geradas pelas gram´aticas irres-tritas ´e exatamente a classe das linguagens recursivamente enumer´aveis. Al´em disso, para completar a chamada hierarquia de Chomsky, ser´a apresentada uma vers˜ao res-trita de MT que reconhece exatamente as linguagens geradas por um tipo de gram´atica denominada gram´atica sens´ıvel ao contexto.

Para a consecu¸c˜ao da primeira parte, ser´a esbo¸cada a constru¸c˜ao de uma MT que aceita uma linguagem gerada por uma gram´atica irrestrita, e ser´a explicitado como construir uma gram´atica que gera a linguagem aceita por uma MT.

Teorema 31 A linguagem gerada por uma gram´atica irrestrita ´e uma LRE.

Prova

Seja uma gram´atica irrestrita G = (V,Σ, R, P). Ser´a mostrado como construir uma MT n˜ao determin´ıstica de duas fitas, M, tal que L(M) = L(G). A fita 1 conter´a a palavra de entrada, a qual n˜ao ser´a modificada durante todo o processamento, e a fita 2 conter´a, em certo instante, uma forma sentencial de G.

O algoritmo da m´aquinaM est´a representado na Figura 4.14. Nos passos 2.1 e 2.2 as sele¸c˜oes mencionadas nessa figura s˜ao concretizadas por meio de n˜ao determinismo, como ser´a visto adiante. Seja io estado inicial deM. Ent˜ao o passo 1 do algoritmo ´e levado a efeito pelas transi¸c˜oes:

δ(i, a,⊔) ={[j0,[a,E],[P,I]]} para cada a∈Σ∪ {⊔}.

No in´ıcio do la¸co, passo 2.1 do algoritmo, tem-se a sele¸c˜ao n˜ao determin´ıstica de uma posi¸c˜aop na fita 2 mediante as transi¸c˜oes:

δ(j0,h, a) ={[j0,[h,I],[a,D]],[j1,[h,I],[a,I]]} para cada a∈Σ∪V.

Supondo queGtenhanregras, no estadoj1´e escolhida, n˜ao deterministicamente, uma das regras, da seguinte forma (passo 2.2 do algoritmo):

δ(j1,h, a) ={[r1,[h,I],[a,I]], . . . ,[rn,[h,I],[a,I]]} para cada a∈Σ∪V.

onde uma transi¸c˜ao para o estadortcorresponde `a escolha dat-´esima regra. No estado rt, o lado esquerdo da regrat´e comparado com o conte´udo da fita 2 a partir da posi¸c˜ao atual de seu cabe¸cote (teste doseno passo 2.3). Supondo que o lado esquerdo da regra tseja uma palavra u=a1a2. . . aq, tal teste seria feito por transi¸c˜oes da forma:

δ(rt,h, a1) ={[rt1,[h,I],[⊔,D]]}

δ(r1t,h, a2) ={[rt2,[h,I],[⊔,D]]}

...

δ(rq−1t ,h, aq) ={[rtq,[h,I],[⊔,I]]}.

Note que, `a medida que ´e feita a compara¸c˜ao, os s´ımbolos deu v˜ao sendo apagados da fita 2. Se na fita 2 n˜ao houver algum destes ak, a m´aquina para, correspondendo ao

“rejeite” na partesen˜aodo comandosedo passo 2.3. Havendo sucesso na compara¸c˜ao, u ter´a sido apagada da fita 2 e a m´aquina entrar´a no estado rtq. Nesse estado, o lado direito, v, da regra t deve ser escrito na fita 2 em substitui¸c˜ao a u (passo 2.3.1 do algoritmo). H´a trˆes casos a considerar:

a) |u|=|v|. Basta escreverv no espa¸co em branco onde estava u.

b) |u|>|v|. Deve-se escrever v na parte inicial do espa¸co em branco onde estava u, e deslocar a palavra seguinte a esse espa¸co para a esquerda|u| − |v|posi¸c˜oes.

c) |u|<|v|. Deve-se deslocar a palavra seguinte ao espa¸co em branco onde estava u |v| − |u|posi¸c˜oes, e escreverv no espa¸co em branco resultante.

Apesar de n˜ao serem explicitadas aqui, as transi¸c˜oes para cada um desses casos s˜ao perfeitamente obten´ıveis. Suponha que, ap´os a escrita devna fita 2, a m´aquina atinja o estado l0, tendo posicionado os cabe¸cotes na segunda posi¸c˜ao de cada fita. Nesse estado, de acordo com o passo 2.3.2 do algoritmo, deve-se comparar os conte´udos das fitas 1 e 2, o que pode ser feito mediante as transi¸c˜oes:

δ(l0, a, a) ={[l0,[a,D],[a,D]]} para cada a∈Σ δ(l0,⊔,⊔) ={[f,[⊔,I],[⊔,I]]}.

A ´ultima transi¸c˜ao ocorre para o estado f, ´unico estado final de M. Falta considerar o caso em que a compara¸c˜ao levada a efeito no estadol0 n˜ao resulta em sucesso. Nesse caso, correspondendo `a falha do teste do comando se no passo 2.3.2, deve-se reiniciar o la¸co, ou seja, transitar para o estado j0. Para isso, existem as transi¸c˜oes:

δ(l0, a, b) ={[l1,[a,E],[b,E]]} para cadaa∈Σ, a6=b δ(l1, a, a) ={[l1,[a,E],[a,E]]}para cada a∈Σ δ(l1,h,h) ={[j0,[h,I],[h,D]]}.

Agora, resta mostrar que toda linguagem recursivamente enumer´avel pode ser ge-rada por uma gram´atica irrestrita, o que ser´a feito no teorema a seguir. Para isso, ser´a conveniente representar uma configura¸c˜ao instantˆanea [e, xay] pela palavraxeayi. Ob-serve que y´e seguido por ipor motivos que ficar˜ao claros mais `a frente. Essa nota¸c˜ao n˜ao traz problema desde que E∩Γ =∅, o que ser´a assumido no teorema, sem perda de generalidade.

Teorema 32 Uma LRE pode ser gerada por uma gram´atica irrestrita.

Prova

Seja L uma LRE e seja M = (E,Σ,Γ, δ, i, F) uma MT que aceita L. Ser´a mostrado como construir, a partir de M, uma gram´atica irrestrita G= (V,Σ, R, P) que gera L.

Existir˜ao regras em Gpara trˆes prop´ositos:

1. gerar todas as formas sentenciais do tipowhiwi, em quew∈Σ (os s´ımbolosi,h e i s˜ao vari´aveis emG);

2. simularMsobre a configura¸c˜ao instantˆaneahiwi, deixando o prefixowinalterado;

3. apagar a configura¸c˜ao instantˆanea quando ela for do tipo hxeayi, em quee∈F e δ(e, a) ´e indefinido.

Para efeitos de gerar as formas sentenciais do tipowhiwi(parte 1), suponha que Σ = {a1, a2, . . . , an}. Coloque como novas vari´aveis emG uma vari´avel para cadaai; sejam A1,A2, . . . , An tais vari´aveis. Coloque tamb´em um nova vari´avelB. As regras s˜ao:

P → Bi

B → akBAk para 1≤k≤n (portanto,nregras) B → hi

Aki → aki para 1≤k≤n(portanto,n regras) Ajak → akAj para 1≤k, j ≤n(portanto, n2 regras).

A segunda parte, simula¸c˜ao deM sobre a configura¸c˜ao instantˆaneahiwi, ser´a cum-prida pelas regras especificadas a seguir. Note que todos os s´ımbos de Γ, com exce¸c˜ao dos de Σ, s˜ao vari´aveis em G, assim como os estados deM. As regras s˜ao:

h a1 a2 · · · ai · · · an i fita de leitura e escrita

controle +

δ

e registrador com estado atual

Figura 4.15Arquitetura de um autˆomato linearmente limitado.

• para cada transi¸c˜ao emM da formaδ(e, a) = [e, b,D]:

ea → be

ei → bei sea=⊔

• para cada transi¸c˜ao emM da formaδ(e, a) = [e, b,E]:

cea → ecb para cada c∈Γ

cei → ecbi para cada c∈Γ, sea=⊔.

Para terminar, resta providenciar o apagamento da configura¸c˜ao instantˆanea quan-do ela for quan-do tipo hxeayi, em que e ∈ F e δ(e, a) ´e indefinido (parte 3). Para isso, ´e utilizada uma nova vari´avel #:

• para cada par (e, a) tal quee∈F eδ(e, a) ´e indefinido:

ea → a#

#c → # para cada c∈Γ− {h}

c# → # para cada c∈Γ− {h}

h#i → λ

No restante desta se¸c˜ao, ser˜ao definidas as m´aquinas reconhecedoras e as gram´aticas geradoras das denominadaslinguagens sens´ıveis ao contexto.

Na Figura 4.15 est´a ilustrada a arquitetuta de um autˆomato linearmente limitado.

A ´unica diferen¸ca com rela¸c˜ao a uma MT-padr˜ao (al´em do n˜ao determinismo, como ser´a visto), ´e que a fita ´e limitada `a direita: ap´os a entradaa1a2. . . an, ´e colocado um s´ımbolo especial,i, o qual marca o “final” da fita.5 Segue uma defini¸c˜ao mais precisa.

Defini¸c˜ao 55 Um autˆomato linearmente limitado (ALL) ´e uma m´aquina de Turing n˜ao determin´ıstica, M = (E,Σ,Γ, δ, i, F), em que:

5 Note que a fita comporta palavra de qualquer tamanho. Mas, ap´os a palavra, ´e colocado o s´ımbolo

“i”, o que co´ıbe o uso de c´elulas adicionais.

1

inicialmente, i vem ap´os a palavra de entrada; e

se δ(e,i) ´e definida, ent˜ao δ(e,i) = [e,i,E] para algum e ∈E.

Segue um exemplo.

Exemplo 112 Est´a mostrado na Figura 4.16 o diagrama de estados de um ALL que reconhece a linguagem {anbncn|n >0}.

Como j´a foi dito, os ALLs reconhecem as linguagens geradas pelas gram´aticas sens´ıveis ao contexto (GSCs). Segue a defini¸c˜ao de GSC.

Defini¸c˜ao 56 Uma gram´atica sens´ıvel ao contexto ´e uma gram´atica (V,Σ, R, P), em que cada regra tem a forma x→y, x, y∈(V ∪Σ)+ e |x| ≤ |y|.6

Assim, pela Defini¸c˜ao 56, as formas sentenciais em uma deriva¸c˜ao s˜ao n˜ao decres-centes, ou seja, nunca encolhem. Segue um exemplo.

Exemplo 113 Um exemplo de GSC ´e aquela apresentada no Exemplo 13, p´agina 15, para a linguagem {anbncn|n >0}, aqui reproduzida:

P → aP Bc|abc cB → Bc bB → bb

Segue a defini¸c˜ao de linguagem sens´ıvel ao contexto (LSC).

6O termo “sens´ıvel ao contexto” vem do formato das regras em certa forma normal das GSCs, a qual

´e abordada no Exerc´ıcio 25 da Se¸c˜ao 4.5, p´agina 239.

Defini¸c˜ao 57 Uma linguagem ´e dita ser uma linguagem sens´ıvel ao contexto se existe uma gram´atica sens´ıvel ao contexto que a gere.

Observe que, pela defini¸c˜ao anterior, uma linguagem que cont´em λn˜ao ´e uma LSC, j´a que uma GSC n˜ao pode gerar λ. Para isso, ela teria de permitir, pelo menos, uma regra da formaP →λ.

Pode-se mostrar que:

a) Toda LSC ´e reconhecida por algum ALL.

b) Se M ´e um ALL, ent˜ao L(M)− {λ} ´e LSC.

Para se mostrar a parte (a), basta explicitar como, dada uma GSC G qualquer, construir um ALL que reconhe¸ca L(G). Isso pode ser feito, por exemplo, construindo um ALL com duas trilhas7 que segue um algoritmo n˜ao determin´ıstico similar ao do Teorema 31, p´agina 226. A segunda trilha ´e usada para armazenar uma forma senten-cial, como a segunda fita da MT do Teorema 31. Isso ´e poss´ıvel porque uma forma sentencial, cujo tamanho ultrapasse o da palavra de entrada, nunca poder´a ser usada para ger´a-la. A demonstra¸c˜ao ´e proposta como o Exerc´ıcio 16 da Se¸c˜ao 4.5, p´agina 239.

Para se mostrar a parte (b), basta explicitar como construir uma GSC a partir de um ALL, de forma similar ao que foi feito no Teorema 32, mas garantindo que as regras n˜ao tenham lado direito menor que o lado esquerdo. A demonstra¸c˜ao ´e proposta como o Exerc´ıcio 17 da Se¸c˜ao 4.5, p´agina 239.

Desprezando o caso em que a linguagem cont´em λ, a classe das LLCs est´a propria-mente contida na classe das LSCs, ou seja, toda LLC ´e LSC e existe LSC que n˜ao ´e LLC. Para isso, basta notar que:

a) Toda LLC que n˜ao contenha λ pode ser definida por meio de uma GLC sem regrasλ. E toda GLC sem regras λ´e uma GSC. Assim, toda LLC sem a palavra λ´e uma LSC.

b) Existe LSC que n˜ao ´e LLC. Por exemplo, existe uma GSC para a linguagem {anbncn|n >0}, como mostrado no Exemplo 113, mas n˜ao existe GLC para essa mesma linguagem, conforme pode ser mostrado usando o lema do bombeamento.

Pode-se tamb´em mostrar que:

• toda LSC ´e recursiva;

• existe linguagem recursiva que n˜ao ´e LSC.

Diretamente da defini¸c˜ao, pode-se concluir que toda linguagem recursiva ´e LRE.

Mais `a frente ser´a visto que existem linguagens que s˜ao recursivamente enumer´aveis,

7 Na verdade, assim como para MTs em geral, um ALL de v´arias trilhas ´e um ALL “normal” que em cada c´elula comporta uman-upla.

regulares livres do contexto sens´ıveis ao contexto

recursivas

recursivamente enumer´aveis P(Σ)

Figura 4.17Espa¸co das linguagens em P(Σ).

mas n˜ao recursivas. Ser´a visto tamb´em que existem linguagens que n˜ao s˜ao LREs.

Assim, o espa¸co de todas as linguagens sob um alfabeto Σ tem a estrutura

LRegs⊂LLCs⊂LSCs⊂LRecs⊂LREs⊂ P(Σ),

onde LRegs s˜ao as linguagens regulares, LRecs s˜ao as recursivas etc. A Figura 4.17 ilustra a hierarquia em quest˜ao.

A classifica¸c˜ao das gram´aticas nos quatro tipos mostrados, regulares, livres do con-texto, sens´ıveis do contexto e irrestritas8 ´e a denominada hierarquia de Chomsky.

8 Originalmente, Chomsky classificou-as como gram´aticas dostipos 0, 1, 2 e 3, e as do tipo 0 s˜ao as irrestritas, as do tipo 1 s˜ao as GSCs etc.

Exerc´ıcios

1. Construa gram´aticas irrestritas que gerem as linguagens:

a) {0n1k0n1k|n, k≥0};

b) {ambnck|m < n < k};

c) {www|w∈ {0,1}}.

2. Mostre que para toda gram´atica irrestrita existe uma equivalente na qual cada regra tem pelo menos uma vari´avel do lado esquerdo.

3. Mostre que para toda gram´atica irrestrita existe uma equivalente na qual cada regra tem o lado direito maior ou igual ao lado esquerdo ou ´e regra λ.

4. Seja a MT cujo diagrama de estados est´a mostrado na Figura 4.4b, p´agina 208.

Utilizando o m´etodo desenvolvido na prova do Teorema 32, obtenha uma gram´atica irrestrita para a linguagem reconhecida por tal MT.

5. Construa GSCs para:

a) {anbn+1cn+2|n≥0};

b) {ambnck|m < n < k};

c) {wxw|w∈ {a,b} e x∈ {c}+}.

Procure obter GSCs com um n´umero m´ınimo de regras.

6. Projete um ALL que aceite {ambnck|m < n < k}.

7. A linguagem {ww|w∈ {0,1}+} ´e uma LSC? Por quˆe?

8. Seja L uma LRE de alfabeto Σ, e # um s´ımbolo n˜ao pertencente a Σ. Mostre que existe uma LSC L de alfabeto Σ∪ {#} tal que, para todow∈Σ:

w∈L se, e somente se,w#k∈L para algum k≥0.

Documentos relacionados