Máquina de Turing
Máquina de Turing
Máquina de Turing
- No tags were found...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
POLI/UCPEL364018 Linguagens Formais e AutômatosTEXTO 5Máquina <strong>de</strong> <strong>Turing</strong>Linguagens Sensíveis ao Contexto e Enumeráveis RecursivamenteProf. Luiz A M PalazzoMaio <strong>de</strong> 2011________________________________________________________________________0. IntroduçãoA Ciência da Computação é o estudo sistematizado relativo à Computação.Originou-se na Grécia com os algoritmos <strong>de</strong> Eucli<strong>de</strong>s (século III A.C.) e na Babilônia, comestudos sobre complexida<strong>de</strong> e redutibilida<strong>de</strong> <strong>de</strong> problemas.Em 1936 Alan Mathieson <strong>Turing</strong>, matemático inglês, propôs um mo<strong>de</strong>lo que ficouconhecido como Máquina <strong>de</strong> <strong>Turing</strong>, atualmente aceito como uma formalização doconceito <strong>de</strong> procedimento, isto é, uma seqüência finita <strong>de</strong> instruções que po<strong>de</strong>m serrealizadas mecanicamente em um tempo finito.Ainda em 1936, Alonzo Church apresentou uma hipótese que ficou conhecida como aHipótese <strong>de</strong> Church, segundo a qual qualquer função computável po<strong>de</strong> ser representadapor uma Máquina <strong>de</strong> <strong>Turing</strong>.Como o conceito <strong>de</strong> procedimento é matematicamente impreciso, não é possível provarque a Máquina <strong>de</strong> <strong>Turing</strong> é realmente o dispositivo computacional mais genérico possível.Entretanto nenhum mo<strong>de</strong>lo computacional <strong>de</strong>senvolvido até o presente conseguiuapresentar capacida<strong>de</strong> computacional superior ao mo<strong>de</strong>lo <strong>de</strong> <strong>Turing</strong>, o que reforça aHipótese <strong>de</strong> Church.As Linguagens Enumeráveis Recursivamente (LER), ou do Tipo Zero, são as linguagensque po<strong>de</strong>m ser reconhecidas por uma Máquina <strong>de</strong> <strong>Turing</strong> e portanto esta classe <strong>de</strong>linguagem representa o conjunto <strong>de</strong> todas as linguagens que po<strong>de</strong>m ser reconhecidasmecanicamente e em um tempo finito.Para gerar as LER emprega-se um formalismo axiomático ou gerador na forma <strong>de</strong> umagramática <strong>de</strong>nominada Gramática Irrestrita (não possui qualquer restrição quanto aoformato das produções).As Linguagens Sensíveis ao Contexto (LSC), ou do Tipo 1, estão contidas propriamenteno conjunto das LER.Gramáticas Sensíveis ao Contexto (GSC): É o formalismo gerador das LSC. O ladoesquerdo das produções po<strong>de</strong> ser uma palavra <strong>de</strong> variáveis ou terminais <strong>de</strong>finindo umcontexto <strong>de</strong> <strong>de</strong>rivação.Máquina <strong>de</strong> <strong>Turing</strong> com Fita Limitada: É o mecanismo reconhecedor das LSC. Sua fita élimitada e portanto finita.. Não se sabe se o não-<strong>de</strong>terminismo aumenta ou não o po<strong>de</strong>rcomputacional das Máquinas <strong>de</strong> <strong>Turing</strong> com Fita Limitada.
1. Máquina <strong>de</strong> <strong>Turing</strong>A Máquina <strong>de</strong> <strong>Turing</strong>, para ser consi<strong>de</strong>rada um mo<strong>de</strong>lo <strong>de</strong> um procedimento <strong>de</strong>veapresentar, entre outras, as seguintes proprieda<strong>de</strong>s:a) A execução do algoritmo <strong>de</strong>ve ser finita.b) Deve consistir <strong>de</strong> passos (1) discretos, (2) executáveis mecanicamente, (3) numtempo finito.O mo<strong>de</strong>lo proposto por Alan <strong>Turing</strong> em 1936 consistia <strong>de</strong> 3 partes:a) Fita: usada simultaneamente como dispositivo <strong>de</strong> entrada, saída e memória <strong>de</strong>trabalho,b) Unida<strong>de</strong> <strong>de</strong> Controle: reflete o estado corrente da máquina. Possui uma unida<strong>de</strong><strong>de</strong> leitura e gravação (cabeça da fita) que acessa uma célula da fita <strong>de</strong> cada vez,movendo-se para a esquerda e para a direita, ec) Programa ou Função <strong>de</strong> Transição: comanda as leituras e gravações, o sentidodo movimento da cabeça e <strong>de</strong>fine o estado da máquina.A fita é finita à esquerda e infinita à direita, sendo dividida em células on<strong>de</strong> cada umaarmazena um símbolo, que po<strong>de</strong>m pertencer ao alfabeto <strong>de</strong> entrada, ao alfabeto auxiliarou ser "branco".Inicialmente a palavra a ser processada ocupa as células mais à esquerda da fita, ficandoas <strong>de</strong>mais em "branco".A unida<strong>de</strong> <strong>de</strong> controle possui um número finito e pré-<strong>de</strong>finido <strong>de</strong> estadosA cabeça <strong>de</strong> leitura/gravação lê o símbolo contido em uma célula da fita <strong>de</strong> cada vez egrava um novo símbolo.Após a leitura/gravação a cabeça se move uma célula para a direita ou para a esquerda.O símbolo gravado e o sentido do movimento são <strong>de</strong>finidos pelo programa.Inicialmente a cabeça está posicionada na célula mais à esquerda da fita como po<strong>de</strong> servisto na figura, on<strong>de</strong> representa "branco".abbc a...ControleO programa é uma função que, <strong>de</strong>pen<strong>de</strong>ndo do estado corrente da máquina e dosímbolo lido, <strong>de</strong>termina o símbolo a ser gravado, o sentido do movimento da cabeça e onovo estado da máquina.
p(a1, a2, m)qESTADOANTERIORNOVOESTADOSímbolo lido Símbolo gravado Sentido domovimentoIsto é: (p, a1) = (q, a2, m)2. Definição Formal da Máquina <strong>de</strong> <strong>Turing</strong>Uma máquina <strong>de</strong> <strong>Turing</strong> é uma heptupla:M = ( , Q, , q 0 , F, V, ), on<strong>de</strong>:é um alfabeto <strong>de</strong> entrada Q é um conjunto finito <strong>de</strong> estados possíveis <strong>de</strong> Mé um programa ou função <strong>de</strong> transição parcial::Qx( V { })Qx( V { })x{E,D} q 0 é um estado inicial da máquina, q 0 F é um conjunto <strong>de</strong> estados finais da máquina tal que F está contido em Q V é um alfabeto auxiliar (que po<strong>de</strong> ser vazio)é o símbolo especial "branco"A função <strong>de</strong> transição consi<strong>de</strong>ra o estado corrente e o símbolo lido da fita para<strong>de</strong>terminar o novo estado, o símbolo a ser gravado e o sentido do movimento da cabeça,on<strong>de</strong> esquerda e direita são representadas por E e D respectivamente.O processamento <strong>de</strong> uma Máquina <strong>de</strong> <strong>Turing</strong>, M = ( , Q, , q 0 , F, V, ), para umapalavra <strong>de</strong> entrada w consiste na sucessiva aplicação da função programa a partir doestado inicial q 0 e da cabeça posicionada na célula mais à esquerda da fita até ocorreruma condição <strong>de</strong> parada.O processamento <strong>de</strong> M para a entrada w po<strong>de</strong> parar ou ficar em loop infinito. A paradapo<strong>de</strong> ser <strong>de</strong> duas maneiras: aceitando ou rejeitando a entrada w.As condições <strong>de</strong> parada são as seguintes:a) A máquina assume um estado final: a máquina pára e a palavra <strong>de</strong> entrada éaceita.b) A função programa é in<strong>de</strong>finida para o argumento (símbolo lido e estadocorrente): a máquina pára e a palavra <strong>de</strong> entrada é rejeitada.c) O argumento da função programa <strong>de</strong>termina um movimento para a esquerdae a cabeça já está na posição mais à esquerda da fita: a máquina pára e apalavra <strong>de</strong> entrada é rejeitada.Q
Para <strong>de</strong>finir formalmente o comportamento da Máquina <strong>de</strong> <strong>Turing</strong> é necessário esten<strong>de</strong>ra função programa para usar como argumento um estado e uma palavra.Se M é uma Máquina <strong>de</strong> <strong>Turing</strong>:a) ACEITA(M) ou L(M) é o conjunto <strong>de</strong> todas as palavras <strong>de</strong> * aceitas por M.b) REJEITA(M) é o conjunto <strong>de</strong> todas as palavras <strong>de</strong> * rejeitadas por M.c) LOOP(M) é o conjunto <strong>de</strong> todas as palavras <strong>de</strong> * para as quais M entra emloop infinito.3. Exemplo: Máquina <strong>de</strong> <strong>Turing</strong>Seja a linguagem L 1 = { a n b n | n 0}.A Máquina <strong>de</strong> <strong>Turing</strong> M = ({a, b}, {q 0 , q 1 , q 2 , q 3 , q 4 }, 1 , q 0 , {q 4 }, {A, B}, ), on<strong>de</strong> 1 écomo na tabela a seguir é tal que:(1) ACEITA(M) = L 1 , (2) REJEITA(M) = * - L 1 e (3) LOOP(M) =1 a b A Bq0 (q1, A, D) (q3, B, D) (q4, , D)q1 (q1, a, D) (q2, B, E) (q1, B, D)q2 (q2, a, E) (q0, A, D) (q2, B, E)q3 (q3, B, D) (q4, , D)q4(A, A, D)(a, A, D) (b, B, E)q0 q1 q2( , D)(B, B, D)(a, a, D)(B, B, D)q3(B, B, D)(a, a, E)(B, B, E)( , D)q4
a a b b A a b bA a b bq0q1q1A a B b A a B bA a B bq2q2q0A A B B A A B bA A B Bq1q1q2A A B b A A B BA A B Bq2q0q3A A B B A A B Bq3q4