Buscar

Parte 9

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Teoria da Computação 
 
Núcleo de Educação a Distância | Faculdade Impacta 
Texto base 
9 
 
Teoria da Computação 
Ana Paula Ferreira da Rocha 
Resumo 
 A máquina de Turing é um autômato cuja fita não tem tamanho máximo e pode ser usada 
simultaneamente como entrada, saída e dispositivo de memória. A computação com uma 
máquina de Turing demonstra a execução de problemas solucionáveis e as regras 
existentes para que não tenhamos um loop infinito. Observaremos que as extensões da 
máquina de Turing nos trazem modelos de máquina de Turing que podemos usar para 
cálculos e reconhecimento de linguagem e o poder computacional da gramática. 
Introdução 
 Abordaremos a computação com máquinas de Turing e as definições aceitas por 
ela, veremos as situações que levam ao loop infinito e a parada da máquina. As extensões 
da máquina de Turing irão abordar os modelos desta máquina universal e suas definições 
e seu poder computacional. 
 
 
9.1. Computação com máquinas de Turing 
Uma das abordagens do estudo das máquinas de Turing, de máquinas universais em geral, 
é como reconhecedores de linguagens, dispositivos capazes de determinar se uma dada 
palavra sobre o alfabeto de entrada pertence ou não a uma certa linguagem. 
 
Linguagem aceita, linguagem rejeitada linguagem loop 
Seja M = (∑, Q, 𝜹, q0, F, V, 𝜷, ⊛) uma máquina de Turing, então: 
• A linguagem aceita ou linguagem reconhecida por M, é representado por: 
 ACEITA(M) ou L(M) 
 
Teoria da Computação 
 
Núcleo de Educação a Distância | Faculdade Impacta 
É o conjunto de todas as palavras pertencentes a ∑* aceitas por M, a partir do estado 
inicial q0; 
• A linguagem rejeitada por M, é representada por: 
 REJEITA(M) 
É o conjunto de todas as palavras pertencentes a ∑* rejeitadas por M, a partir do estado 
inicial q0; 
• A linguagem loop de M, representada por: 
 LOOP(M) 
É o conjunto de todas as palavras pertencentes a ∑* para as quais M fica processando 
indefinidamente a partir do estado inicial q0. 
Supondo que ∑* é o conjunto universo, as seguintes afirmações são verdadeiras: 
 ACEITA(M) ∩ REJEITA(M) ∩ LOOP(M) = ∅ 
 ACEITA(M) ∪ REJEITA(M) ∪ LOOP(M) = ∑* 
 ~ACEITA(M) = REJITA(M) ∪ LOOP(M) 
 ~REJEITA(M) = ACEITA(M) ∪ LOOP(M) 
 ~LOOP(M) = ACEITA(M) ∪ REJITA(M) 
Cada máquina de Turing M definida sobre o alfabeto ∑ induz uma partição do conjunto 
de todas as palavras ∑* em três classes de equivalência: ACEITA(M), REJEITA(M) e 
LOOP(M) conforme ilustrado abaixo: 
 
Tabela 1.1 – Partição de ∑* induzida por uma máquina de Turing M 
ACEITA(M) REJEITA(M) LOOP(M) 
Fonte: Paulo Blauth Menezes, 2011. 
Sendo preciso, se um ou dois dos conjuntos forem vazios, então a partição induzida 
contém um ou dois conjuntos a menos, reforçando que uma classe de equivalência não 
pode ser vazia. 
 
Máquina de Turing: duplo balanceamento 
Considere a linguagem: 
 L = {anbn | n ≥ 0} 
A máquina de Turing: 
 M = ({a, b}, {q0, q1, q2, q3, q4}, 𝜹, q0, {q4}, {A, B}, 𝜷, ⊛) 
Sendo apresentado no diagrama abaixo, tal que: 
 ACEITA(M) = L e REJEITA(M) = ~L 
∑* 
 
Teoria da Computação 
 
Núcleo de Educação a Distância | Faculdade Impacta 
E, portanto, LOOP(M) = ∅ 
Figura 1.1 – Diagrama MT – duplo balanceamento 
 
Fonte: Paulo Blauth Menezes, 2011. 
Sendo 𝜹 demonstrada na tabela abaixo: 
 
Tabela 1.2 – Função programa MT – duplo balanceamento 
𝜹 ⊛ a b A B 𝜷 
q0 (q0, ⊛, D) (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 
Fonte: Paulo Blauth Menezes, 2011. 
O algoritmo apresentado reconhece o primeiro símbolo a o qual é marcado como A, e 
movimenta a cabeça da fita à direita, procurando o b correspondente, o qual é marcado 
como B. este ciclo é repetido sucessivamente até identificar, para cada a o seu 
correspondente b. Adicionalmente o algoritmo garante que qualquer outra palavra que 
não esteja na forma anbn é rejeitada. 
Já a figura abaixo demonstra a sequência do processamento da máquina de Turing M para 
a entrada w = aabb: 
 
Figura 1.2 – Computação MT – duplo balanceamento para a entrada aabb 
 
Teoria da Computação 
 
Núcleo de Educação a Distância | Faculdade Impacta 
 
Fonte: Paulo Blauth Menezes, 2011. 
 
Máquina de Turing x algoritmo 
Em vários momentos, foi afirmado que a máquina de Turing é aceita como uma 
formalização do conceito de algoritmo, entretanto, também é usual considerar que o 
conceito de algoritmo corresponde a uma máquina de Turing que sempre para, para 
qualquer entrada. Nesse caso uma máquina que eventualmente fica processando 
indefinidamente em loop infinito não seria considerada um algoritmo. 
 
Você sabia? 
Vamos aprofundar o conhecimento sobre Máquinas de Turing? Assista ao vídeo 
Máquinas de Turing – com Prof. Kyller Costa Gorgônio. Disponível em: 
< https://www.youtube.com/watch?v=rPowO0EJTzU>. Acesso em: 09 mai. 2023. 
9.2. Extensões da Máquina de Turing 
Uma das razões para considerar a máquina de Turing como o mais geral dispositivo de 
computação é o fato de que todos os demais modelos de máquinas propostos bem como 
as diversas modificações da máquina de Turing possuem no máximo o mesmo poder 
computacional da máquina de Turing. 
 
Autômato com múltiplas pilhas 
 
Teoria da Computação 
 
Núcleo de Educação a Distância | Faculdade Impacta 
O poder computacional do autômato com duas pilhas é equivalente ao da máquina de 
Turing, adicionalmente um maior número de pilhas também não aumenta a capacidade 
computacional. A definição formal do autômato com duas pilhas e do autômato com 
múltiplas pilhas e a equivalência deles ao modelo da máquina de Turing é interessante 
observar que como são necessárias duas pilhas para que o autômato possua o mesmo 
poder computacional que uma máquina de Turing, pode-se afirmar que a estrutura de fita 
é mais expressiva do que a de pilha. 
 
Máquina de Turing não determinística 
A facilidade de não determinístico não aumenta o poder computacional da máquina de 
Turing. 
 
Máquina de Turing com fita infinita à esquerda e à direita 
A modificação da definição básica da máquina de Turing, permitindo que a fita seja 
infinita dos dois lados, não aumenta o seu poder computacional. Na realidade, a fita 
infinita à esquerda e à direita pode ser facilmente simulada por uma fita tradicional, na 
qual as células pares representam a parte direita da fita, e as ímpares a parte esquerda 
como demonstrado na figura abaixo: 
 
Figura 1.3 – Fita MT – simulação de uma fita infinita à esquerda e à direita 
 
Fonte: Paulo Blauth Menezes, 2011. 
 
Máquina de Turing com múltiplas fitas 
A máquina de Turing com múltiplas fitas possui k fitas infinitas à esquerda e à direita e 
k cabeças de fita, a função programa é como segue: 
• Dependendo do estado corrente da máquina e do símbolo lido em cada uma das 
fitas; 
• Grava um novo símbolo em cada uma das fitas; 
• Move cada uma das cabeças independentemente; 
• A máquina assume um único novo estado. 
Inicialmente a palavra de entrada é armazenada na primeira fita, ficando as demais com 
valor branco. 
 
Máquina de Turing multidimensional 
 
Teoria da Computação 
 
Núcleo de Educação a Distância | Faculdade Impacta 
Neste modelo, a fita tradicional é substituída por uma estrutura do tipo arranjo k-
dimensional infinita em todas as 2k direções. 
 
Máquina de Turing com múltiplas cabeças 
A máquina de Turing com esta modificação possui k cabeças de leitura e gravação sobre 
a mesma fita, cada cabeça possui movimento independente assim o processamento 
depende do estado corrente e do símbolo lido em cada uma das cabeças. 
 
Combinações de modificações sobre a máquina de Turing 
A combinação de algumas ou todas as modificações apresentadas não aumenta o poder 
computacional da máquina de Turing. Por exemplo uma máquina de Turing não 
determinísticacom múltiplas fitas e múltiplas cabeças pode ser simulada por uma 
máquina de Turing tradicional. 
 
Você sabia? 
Vamos aprofundar o conhecimento sobre Máquina de Turing? Assista ao vídeo 
Extensões de Máquina de Turing. Disponível em: 
< https://www.youtube.com/watch?v=DI0Hf58YRDQ >. Acesso em: 27 abr. 2023. 
 
 
Considerações finais 
 Como vimos a máquina de Turing é um autômato cuja fita não possui tamanho 
máximo e pode ser usada simultaneamente como dispositivo de entrada, de saída e de 
memória. A computação com máquina de Turing nos demonstra a execução dos 
problemas solucionáveis e as regras existentes para que não tenhamos um loop infinito 
provocando a parada da computação. Observamos que as extensões da máquina de Turing 
nos trazem os modelos de máquina de Turing que podemos utilizar para as computações 
e o reconhecimento das linguagens e o poder computacional da gramática. 
 
 
Teoria da Computação 
 
Núcleo de Educação a Distância | Faculdade Impacta 
Referências 
DIVERIO, Tiarajú Asmuz; MENEZES, Paulo Blauth. Teoria da Computação: 
máquinas universais e computabilidade. Porto Alegre: Bookman, 2011. 
MENEZES, Paulo Blauth. Linguagens Formais e Autômatos. 6. ed. Porto Alegre: 
Bookman, 2011. 
SIPSER, Michael. Introdução à Teoria da Computação. 2. ed. São Paulo: Cengage 
Learning, 2007.

Outros materiais