Você está na página 1de 7

1

Mquinas de Turing
Mquinas de Turing e o reconhecimento de linguagens
Vamos investigar os tipos de linguagens aceitas pelas mquinas de Turing. Lembrando que uma cadeia w sobre alguns alfabetos aceita por uma MT M quando uma computao comea com w na fita de M entrando em seu estado inicial e resultando M chegar em seu estado final. Por outro lado, w pode ser rejeitada de duas maneiras diferentes, ou causando M parar em algum estado de no aceitao ou causando a M uma operao sem fim (um looping infinito). Apesar de no sermos capazes de mostrar a distino sobre este ponto, afirmamos que os dois mtodos de rejeio no so equivalentes. Definio: Linguagens Recursivamente Enumerveis so as linguagens aceitas por uma mquina de Turing (de alguma forma) e, Linguagens Recursivas so as linguagens aceitas por alguma mquina de Turing que sempre param sob qualquer entrada. Formalmente temos a definio:

Uma linguagem L sobre um alfabeto enumervel recursivamente se aceita por alguma mquina de Turing, isto , se para alguma mquina M temos L = {w * | (q, w) = (p, v), sendo q o estado inicial e p o estado de parada e v *}.
Uma linguagem L recursiva se L recursivamente enumervel (ou seja, pode ser listada) e h alguma mquina de Turing que pra sob todas as entradas que aceitam L. Dessa definio imediato que qualquer linguagem que recursiva tambm recursivamente enumervel.

Linguagens regulares e livres de contexto


Seja um autmato finito determinstico M = (Q, , s, F, ). Podemos construir uma mquina de Turing M' para a qual L(M) = L(M'), e M' = (Q, ', , s', , F', ') na forma: Q' = Q {q'}, onde q' um novo estado que no est em Q. ' = ={} F' = { q' } '(q, ) = ((q, ), , D), para q Q e '

'(q, ) = (q', ), para todo q F. A mquina de Turing resultante l sua cadeia de entrada da esquerda para a direita. Para cada smbolo de entrada ela muda seu estado refletindo o correspondente estado mudado no autmato finito. Quando encontra o direita da cadeia de entrada, move-se para seu estado de aceitao somente se o autmato finito fosse aceitar essa cadeia. Note que, pares da forma (q, ) nunca ocorrem em M, definimos ' para imitar onde fosse possvel e para '(q, ) = (q', ) nos estados q F resulta em uma funo de transio que bem definida. Como uma linguagem regular pode ser aceita por algum autmato finito determinstico, temos o seguinte teorema: se L linguagem regular, ento L tambm linguagem recursiva. Considerando o reconhecimento de linguagens, podemos construir uma mquina de Turing que aceite a linguagem L' = {anbn | n 1}, na forma como ilustramos a aceitao da linguagem L" = {anbncn | n 1}. Sabemos que L' no uma linguagem regular, conseqentemente deduzimos que h linguagens recursivas que no so regulares. Seja agora M um autmato a pilha. Podemos construir uma mquina de Turing que simule o comportamento de M ao aceitar ou rejeitar cadeias. Tal simulao deve levar em considerao as mudanas de estado de M alm das modificaes na pilha de M enquanto processa a cadeia de entrada. Por simplicidade podemos usar uma mquina de Turing de duas fitas. Na fita 1, mantemos a cadeia de entrada e na fita 2 guardamos os contedos da

pilha de M. Um push na pilha corresponderia ao movimento para direita seguido da escrita na fita 2. Portanto, a cabea da fita 2 sempre l o topo atual da pilha. A mudana de estados da mquina de Turing refletir a mudana de estados de M. Consideremos o autmato a pilha M dado por: M = (Q, , , , i, F) Q = {q1, q2, q3}, i = q1, = {a, b}, F = { q3}, = {a, b, #} o alfabeto da pilha (q1, , ) = {(q1, #)}, (q1, b, a) = {(q2, )}, (q1, a, #) = {(q1, a#)}, (q2, b, a) = {(q2, )}, (q1, a, a) = {(q1, aa)}, (q2, , #) = {(q3, )}

... esse autmato reconhece a linguagem livre de contexto L' = {anbn | n 0}. A mquina de Turing que construiremos usar duas fitas e tem os mesmos estados, incluindo inicial e de parada (q3), alfabeto , para o alfabeto de fita acrescentamos o smbolo (branco) e a funo de transio fica da seguinte forma: iniciamos com a cabea da fita 1 sob o smbolo mais esquerda da cadeia de entrada e a fita 2 vazia (isto , tudo em branco). Primeiro marcamos o fundo da pilha na fita 2, com a transio: '(q1, (a, )) = (q1, (a, -) ; (#,D)) - respectivamente: leitura, escrita e movimento em cada fita as duas instncias em que o autmato escreve na pilha so manuseados primeiro pelo movimento da cabea da fita 2 onde escreve o novo caractere e ento se move para a direita. Nesse ponto o caracter de entrada ento "consumido" pelo movimento da cabea da fita 1 para a direita. Portanto temos as transies: '(q1, (a, #)) = (q1, (a,D); (#a, D)) '(q1, (a, a)) = (q1, (a,D); ( aa, D)) onde colocamos os a's na pilha '(q1, (a, )) = (q1, (a, a)) . ao encontrarmos um b, iniciamos a retirada de um smbolo a da pilha corresponde ao movimento da cabea da fita 2 para a esquerda (em direo ao fundo da pilha). Assim temos as transies: '(q1, (b, a)) = (q2, (b,D); (a, E)) '(q2, (b, a)) = (q2, (b,D); (a, E))

Finalmente, a aceitao ocorre quando a cadeia de entrada tiver sido esgotada e a pilha esvaziada. com a transio do autmato de pilha (q2, , #) = {(q3, )} correspondendo ao movimento: '(q2, (, #)) = (q3, (,-); (#, -)) da mquina de Turing. Como as linguagens livres de contexto so aceitas exatamente por autmatos a pilha, podemos enunciar o teorema: se L uma linguagem livre de contexto, ento L uma linguagem recursiva A interseo de duas linguagens recursivas resultar em uma linguagem recursiva. Para ver isso, suponha que M1 e M2 sejam mquinas de Turing que param sob todas as entradas. Ento, se w L(Mi), sabemos que Mi parar em um estado de aceitao, e se w L(Mi), ento Mi no parar em um estado de aceitao para cada i = 1, 2. Seja M uma mquina de Turing que tem duas fitas. A cadeia de entrada w est presente na fita 1 e uma cpia dela feita na fita 2. M ento emula M1 na fita 1 at M1 alcanar a parada. Se M1 parar em um estado de no aceitao ento M tambm parar em estado de no aceitao. Por outro lado, se M1 aceitar w, ento M emula M2 na fita 2 (com a cpia de w). Se M2 parar em um estado de no aceitao M tambm parar em no aceitao. Mas se M2 aceitar w M tambm aceita w. Assim wL(M) se e somente se wL(M1) e wL(M2), e assim temos L(M) = L(M1) L(M2). Finalmente note que M para sob todas as entradas desde que M1 e M2 o faam. Assim, L(M) uma linguagem recursiva, e temos o seguinte teorema: se L1 e L2 so linguagens recursivas, ento L1 L2 tambm ser. Nota: h linguagens recursivas que no so livres de contexto, como vimos L" = {anbncn |n1}.

Gramticas Irrestritas
Contrariamente s demais gramticas introduzidas anteriormente, esta gramtica no tem qualquer restrio nas produes, observe como exemplo a gramtica que gera a linguagem L" = {anbncn | n 1}: G = ({S,C}, {a, b, c}, P, S), onde P = {S abc, ab aabbC, Cb bC, c cc. };

a palavra aaabbbccc pode ser derivada com a seqncia:

S abc aabbCc aaabbCbCc aaabbbCCc aaabbbCcc aaabbbccc


Note que o no-terminal C "caminha" na palavra at a posio correta para gerar um terminal c. Podemos ento enunciar o teorema: L uma linguagem enumervel recursivamente se, e somente se, L gerada por uma gramtica irrestrita

Linguagens Sensveis ao Contexto e a hierarquia de Chomsky


Entre as gramticas irrestritas e alguma forma restrita de gramticas livres de contexto, vrias gramticas com diferentes nveis de restrio podem ser definidas. Nem todas as gramticas geram classes de linguagem interessantes, ms uma dessas a coleo de gramticas sensveis ao contexto. Essas gramticas sensveis ao contexto produzem uma classe de linguagens localizada estritamente entre as linguagens livres de contexto e as linguagens recursivas. Uma Gramtica Sensvel ao Contexto G uma gramtica G = (V, , P, S) com a restrio de que qualquer regra de produo de P da forma , onde: uma palavra de (V )+, uma palavra de (V )* e || ||, excetuando-se, eventualmente, para S . Neste caso, S no pode estar presente no lado direito de qualquer produo.

Desta forma, a cada etapa de derivao, o tamanho da palavra derivada no pode diminuir, excetuando-se para gerar a palavra vazia, se esta pertencer linguagem. Como exemplo, a linguagem L" que vimos acima pode ser gerada tambm por uma

gramtica sensvel ao contexto, para tanto temos as produes: P: {S abc | aAbc, Ab bA, Ac Bbcc, bB Bb, aB aa | aaA. }.

A coleo de linguagens sensveis ao contexto contm a coleo de linguagens livres do contexto. Seja G = (V, , S, P) uma gramtica sensvel ao contexto qualquer, ento existe uma gramtica G1 = (V1, 1, S1, P1) para a qual L(G) = L(G1) e S1 nunca aparece no lado direito de quaisquer produes em P1.

existe G = (V, , S, P) , uma gramtica sensvel ao contexto e existe uma mquina de Turing , T, que pra sob todas as entradas e aceita L(G).

se L uma linguagem sensvel ao contexto, ento L recursiva. h linguagens recursivas que no so linguagens sensveis ao contexto.

As linguagens livres de contexto esto contidas nas linguagens sensveis ao contexto, que por sua vez esto contidas nas linguagens recursivas. Em 1959, Noam Chomsky classificou quatro famlias de tipos de gramticas: irrestritas ou do tipo 0, sensveis ao contexto ou tipo 1, livres do contexto ou tipo 2, e regulares ou tipo 3. As linguagens surgem desses tipos de gramticas, e como notamos toda linguagem livre de contexto que contm a cadeia vazia gerada por uma gramtica livre de contexto na qual S a nica regra . Similarmente, mostramos que qualquer linguagem sensvel ao contexto contendo derivado de uma gramtica na qual S a nica produo .

Esquematicamente temos a hierarquia de Chomsky:

lin g u a g e n s re g u la re s

lin g u a g e n s livre s d e c o n te xto lin g u a g e n s s e n sve is a o c o n te xto lin g u a g e n s e n u m e r ve is re c u rs iva m e n te

encerramos

enunciando

teorema

da

hierarquia

que

sumariza

as

relaes

gramtica/linguagem: Sob um dado alfabeto, a coleo de linguagens enumerveis recursivamente contm a coleo de linguagens recursivas que contm a coleo de linguagens sensveis ao contexto que contm a coleo de linguagens livres de contexto, que por sua vez contm as linguagens regulares. Exerccios 1) Descreva as gramticas que geram as linguagens: a) O conjunto de cadeias com igual nmero de 0s e de 1s b) {anbncn |n 1} c) {wwR | w qualquer cadeia de 0s e 1s} 2) A linguagem gerada pela gramtica abaixo (com smbolo inicial S) livre de contexto? Gramtica: S SPQR S QP PQ PQ QP PR RP RP PR QR RQ RQ QR P x Q y R z

Você também pode gostar