Prévia do material em texto
MÁQUINA DE TURING Marcelo Guerra INTRODUÇÃO Vimos os conceitos: Linguagens Regulares Autômatos finitos Linguagens Livres de Contexto Autômatos com Pilha As linguagens regulares são um subconjunto das linguagens livres de contexto. Autômatos com pilha são mais poderosos que autômatos finitos. As LLCs são de escopo limitado {AnBnCn /n>=0} não é uma LLC. INTRODUÇÃO ACP x Autômatos finitos A diferença está na memória temporária (Pilha) Existirão famílias de linguagens mais poderosas se dermos mais flexibilidade de memória ao autômato? O que podemos dizer sobre o autômato mais poderoso e os limites da computação? Isto nos leva ao conceito de Máquina de Turing. MÁQUINA DE TURING Em 1936, Alan Turing propôs um modelo conhecido como Máquina de Turing. Atualmente, a MT é aceita como uma formalização de um algoritmo ou função computável, ou seja, uma sequência finita de instruções, as quais podem ser realizadas mecanicamente, em um tempo finito. Ainda em 1936, Alonzo Church apresentou a Hipótese de Church: Qualquer função computável pode ser processada por uma máquina de Turing capaz de processar a função. MÁQUINA DE TURING Basicamente, é um autômato finito que tem uma fita de comprimento infinito onde podemos ler e escrever dados. NOTAÇÃO PARA A MÁQUINA DE TURING A máquina consiste em um controle finito que pode se encontrar em qualquer estado de um conjunto finito de estados Existe uma fita dividida em células, cada uma podendo conter qualquer símbolo de um conjunto finito de símbolos B B X1 X2 Xi Xn B B ... ... Unidade de controle finito NOTAÇÃO PARA A MÁQUINA DE TURING Inicialmente, a entrada – uma string de comprimento finito de símbolos – é escolhida a partir do alfabeto de entrada e colocada na fita Todas as demais células, à direita e à esquerda da string de entrada estão em branco, símbolo exclusivo da fita, junto com outros símbolos B B X1 X2 Xi Xn B B ... ... Unidade de controle finito NOTAÇÃO PARA A MÁQUINA DE TURING Associada à fita existe a cabeça da fita, que fica sempre posicionada em uma das células: A cabeça pode se mover uma célula para a direita ou para a esquerda da fita. Pode ler e escrever um único símbolo em cada movimento. B B X1 X2 Xi Xn B B ... ... Unidade de controle finito NOTAÇÃO PARA A MÁQUINA DE TURING Um movimento da máquina de Turing é uma função do estado do controle finito e do símbolo lido. Em um movimento, a máquina: 1. Mudará de estado 2. Gravará um símbolo na célula lida, substituindo aquele que lá estava. B B X1 X2 Xi Xn B B ... ... Unidade de controle finito NOTAÇÃO PARA A MÁQUINA DE TURING 3. Movimentará a cabeça da fita para a esquerda ou direita. A cabeça não deverá permanecer estacionária: um movimento deve ser feito. B B X1 X2 Xi Xn B B ... ... Unidade de controle finito NOTAÇÃO PARA A MÁQUINA DE TURING Formalmente, uma máquina de Turing (MT) é dada pela tupla de 7 valores M = (Q, Σ, Γ, δ, q0, B, F) cujos significados são: Q: é o conjunto finito de estados do controle finito Σ: conjunto de símbolos de entrada Γ: conjunto completo de símbolos da fita, Σ ⊂ Γ q0: é o estado inicial B: é o símbolo branco – B ∈ Γ e B ∉ Σ. Inicialmente, B aparece em todas as células da fita, exceto aquelas contendo a entrada. F: O conjunto de estados finais, subconjunto de Q NOTAÇÃO PARA A MÁQUINA DE TURING δ é a função de transição: os argumentos de δ(q,X) são: um estado e um símbolo da fita O valor de δ(q,X), se definido, é uma tripla (p, Y, D) onde 1. p é o próximo estado 2. Y é o símbolo, em Γ, gravado na célula sendo varrida, em substituição a X 3. D é uma direção ou sentido, L ou R, indicando esquerda ou direita EXEMPLO DE MOVIMENTAÇÃO NA MT Considere a transição: δ(q0,a) = (q1,d,R) a b c q0 d b c q1 EXEMPLO Considere a máquina de Turing: Q={q0,q1} Σ={a,b} Γ = {a,b,B} F= {q1} q0 é o estado inicial δ(q0,a) = (q0,b,R) δ(q0,b) = (q0,b,R) δ(q0,B) = (q1,B,L) a a q0 b a q0 b b q0 b b q1 Estado final DESCRIÇÕES INSTANTÂNEAS PARA MT’S Para descrever formalmente o que uma MT faz, precisamos de uma notação para suas configurações (ou descrições instantâneas) Só mostramos em uma DI células que contêm símbolos não-brancos Em condições especiais, por exemplo, quando a cabeça move-se para uma célula em branco, a DI inclui alguns brancos à esquerda ou à direita da cabeça Além da fita, representamos: O controle finito e a cabeça da fita Incorporamos o estado à fita e o colocamos à esquerda da célula lida DESCRIÇÕES INSTANTÂNEAS PARA MT’S O movimento de uma configuração a outra é denotado pela notação ⊦M usada para ACP’s. Ex: δ(q1,c) = (q2,e,R) Um movimento possível é: abq1cd ⊦abeq2d DESCRIÇÕES INSTANTÂNEAS PARA MT’S O string X1X2...Xi-1qXiXi+1...Xn representa uma DI, onde: 1. q é o estado da MT 2. A cabeça da fita está varrendo o i-ésimo símbolo a partir da esquerda 3. X1X2...Xn é a parte da fita entre o não branco mais à esquerda e o mais à direita Como exceção, se a cabeça estiver à direita do não branco mais à esquerda (ou de maneira análoga do lado direito), algum prefixo ou sufixo será branco e i será 1 ou n, respectivamente. EXEMPLO a a q0 b a q0 b b q0 b b q1 Descrições instantâneas: q0aa bq0a bbq0B bq1b q0aa ⊦bq0a ⊦bbq0B ⊦bq1b ou q0aa ⊦* bq1b δ(q0,a) = (q0,b,R) δ(q0,b) = (q0,b,R) δ(q0,B) = (q1,B,L) MT COMO RECONHECEDORAS DE LINGUAGEM Uma cadeia w é escrita sobre a fita, com brancos preenchendo as porções não usadas. A MT começa no estado inicial, com a cabeça da fita no símbolo mais à esquerda de w. Se após uma sequência de movimentos, a MT entra em um estado final e pára, então w é considerada reconhecida pela MT. Por convenção, quando uma MT entra em um estado final, ela pára. MT COMO RECONHECEDORAS DE LINGUAGEM Definição: Seja M = (Q, Σ, Γ, δ, q0, B, F) uma máquina de Turing. Então a linguagem reconhecida por M é: L(M) = {w Σ* | q0w ⊦* x1qfx2} Onde qf F x1,x2 Γ* EXEMPLO Para Σ={0,1}, projetar uma máquina de Turing que reconhece a linguagem denotada pela expressão regular 0* Colocamos uma cadeia pertencente à linguagem na fita precedidos e seguidos de uma infinidade de brancos. Começando no lado esquerdo da entrada, lemos cada símbolo e checamos se ele é um 0. Se for 0 , continuamos movendo para a direita. Se atingirmos um branco, terminamos e reconhecemos a cadeia. Se a cadeia contiver um 1 em algum lugar, paramos em algum estado não final e a cadeia não pertence à linguagem. EXEMPLO M=({q0,q1}, {0,1}, {0,1,B}, δ, q0, B, {q1}) δ(q0,0) = (q0,0,R) δ(q0,B) = (q1,B,L) Sequência de descrições instantâneas para 000 q0000 ⊦0q000 ⊦00q00 ⊦000q0B ⊦00q10 EXEMPLO Construímos a MT para a linguagem {anbn| n 1} e vemos como a máquina se comporta Colocamos uma cadeia pertencente à linguagem na fita precedidos e seguidos de uma infinidade de brancos A MT trocará um a por um X e um b por um Y até todos os símbolos terem sido comparados Começando à esquerda da entrada, a MT troca repetidamente a’s por X e se move para a direita sobre qualquer a e Y que vier até chegar a um b EXEMPLO Ela troca esse b por um Y e se move para a esquerda, sobre os Y’s e a’s que encontrar até encontrar um X Nesse ponto, a MT procura por um a imediatamente à direita. Se encontrar, troca-o por X e repete o processo trocando o b correspondente por Y Se a entrada não contiver anbn, a MT deixará de ter um próximo movimento e morrerá sem aceitar a entrada Se terminar de trocar todos os a’s por X, ela trocará o último b por Y e depois descobrirá que a entrada está na forma anbn e aceitará. EXEMPLO M=({q0,q1,q2,q3,q4}, {a,b}, {a,b,X,Y,B}, δ, q0, B, {q4}) δ é dado por: Estado a b X Y B q0 (q1,X,R) (q3,Y,R) q1 (q1,a,R) (q2,Y,L) (q1,Y,R) q2 (q2,a,L) (q0,X,R) (q2,Y,L) q3 (q3,Y,R) (q4,B,R) q4 EXEMPLO Sequência de descrições instantâneas para “aabb” q0aabb ⊦Xq1abb ⊦Xaq1bb ⊦Xq2aYb ⊦q2XaYb ⊦ Xq0aYb ⊦XXq1Yb ⊦XXYq1b ⊦XXq2YY ⊦ Xq2XYY ⊦ XXq0YY ⊦XXYq3Y ⊦ XXYYq3B ⊦XXYYBq4B A MT pára em um estado final, logo a cadeia aabb é aceita. Repita o exercício para a cadeia “aaabb” Estado a b X Y B q0 (q1,X,R) (q3,Y,R) q1 (q1,a,R) (q2,Y,L) (q1,Y,R) q2 (q2,a,L) (q0,X,R) (q2,Y,L) q3 (q3,Y,R) (q4,B,R) q4