Aula 9: Máquinas de Turing

Documentos relacionados
Aula 7: Autômatos com Pilha

Teoria da Computação. Capítulo 1. Máquina de Turing. Prof. Wanderley de Souza Alencar, MSc.

Máquinas de Turing (MT)

Melhores momentos AULA PASSADA. Complexidade Computacional p. 136

Linguaguens recursivamente enumeráveis e recursivas

Aula 10: Decidibilidade

Linguagens recursivamente enumeráveis

Aula 3: Autômatos Finitos

Aula 3: Autômatos Finitos

Aula 10: Decidibilidade

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados.

Autômatos de Pilha (AP)

Draft-v0.1. Máquinas de Turing Máquinas de Turing

Máquina de Turing. Controle finito

Modelos de Computação Folha de trabalho n. 10

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

Introdução Maquinas de Turing universais O problema da parada. Indecidibilidade. Rodrigo Gabriel Ferreira Soares DEINFO - UFRPE.

Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente

Computabilidade e Complexidade (ENG10014)

Máquinas de Turing: uma introdução

Variações de Máquinas de Turing

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

Máquina de Turing. Controle finito

Máquina de Turing e máquina de Turing universal

Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel Introdução.

Aula 10: Tratabilidade

Gramáticas Sensíveis ao Contexto (GSC) Linguagens Sensíveis ao Contexto (LSC) Autômatos Linearmente Limitados (ALL)

PCC104 - Projeto e Análise de Algoritmos

Marcos Castilho. DInf/UFPR. 5 de abril de 2018

Autômato com pilha. IBM1088 Linguagens Formais e Teoria da Computação. Evandro Eduardo Seron Ruiz

Linguagens Formais e Autômatos (LFA)

Apostila 06. Objetivos: Estudar a Computabilidade Estudar a Decidibilidade Estudar a Redutibilidade

Marcos Castilho. DInf/UFPR. 16 de maio de 2019

Linguagens Regulares. Prof. Daniel Oliveira

Máquinas de Turing 3

INE5317 Linguagens Formais e Compiladores AULA 5: Autômatos Finitos

Linguagens Formais e Autômatos Decidibilidade

Apostila 04. Objetivo: Estudar a Máquina de Turing

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO

Teoria da Computação. Unidade 3 Máquinas Universais. Referência Teoria da Computação (Divério, 2000)

Linguagens Formais e Autômatos P. Blauth Menezes

Aula 8: Gramáticas Livres de Contexto

Teoria da Computação. Máquinas Universais Máquina com Pilhas

Linguagens Formais e Autômatos 02/2016. LFA Aula 04 16/11/2016. Celso Olivete Júnior.

SCC Capítulo 3 Linguagens Sensíveis ao Contexto e Autômatos Limitados Linearmente

Capítulo A máquina de Turing (TM) padrão Combinações de máquinas de Turing A Tese de Turing. ADC/TC/Cap.9/ /LEI/DEIFCTUC 375

Complexidade de Algoritmos. Edson Prestes

Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 4. Autômatos Finitos

PCS3616. Programação de Sistemas (Sistemas de Programação) Máquinas de Turing

Linguagens Formais e Autômatos P. Blauth Menezes

Universidade Federal de Alfenas

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação

Primeira Lista de Exercícios 2005/1... Exercício 1 Desenhe Diagrama de Estados para Máquinas que Decidem as Linguagens:

Capítulo 2: Máquinas de Estados Finitos. Modelagem do problema. Quebra-cabeças. Newton José Vieira, Isabel Gomes Barbosa. 19 de agosto de 2010

Linguagens livres de contexto e autômatos de pilha

a n Sistemas de Estados Finitos AF Determinísticos

Terceira Lista de Exercícios 2004/2...

Universidade Federal do Rio de Janeiro Departamento de Ciência da Computação

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Autómatos de Pilha. Cada transição é caracterizada pelo estado, símbolo que está ser lido e o elemento no topo da pilha. dados de entrada.

Autômatos Finitos Determinís3cos (AFD)

Teoria da Computação. Expressões Regulares e Autômatos Finitos. Thiago Alves

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

INTRATABILIDADE e NP-COMPLETUDE

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO II Campus Rio Pomba

Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios

Teoria da Computação

Introdução às Máquinas de Turing (TM)

IV Gramáticas Livres de Contexto

Linguagens Formais e Problemas de Decisão

Linguagens Formais e Autômatos. Autômatos Finitos Determinísticos (AFD)

LINGUAGENS FORMAIS E AUTÔMATOS

a n Autômatos com Pilha: Definição Informal e Definição Formal Linguagem Aceita por um ACP ACPDet X ACPND Notação gráfica para ACP

Autômatos Finitos Não Determinís5cos (AFN)

LINGUAGENS FORMAIS E AUTÔMATOS. Prova 2-10/06/ Prof. Marcus Ramos

Sistemas de Estados Finitos AF Determinísticos. (H&U, 1979) e (H;M;U, 2001)

Fundamentos da Teoria da Computação

Máquina de Turing. Teoria da Computação. Teoria da Computação. Histórico da Computação:

O que é Linguagem Regular. Um teorema sobre linguagens regulares. Uma aplicação do Lema do Bombeamento. Exemplo de uso do lema do bombeamento

Transcrição:

Teoria da Computação Aula 9: Máquinas de Turing DAINF-UTFPR Prof. Ricardo Dutra da Silva Uma máquina de Turing é uma máquina de estados finitos que pode mover o cabeçote em qualquer direção, ler e manipular as entradas de forma ilimitada. Desta forma ela representa um modelo com características de um computador moderno. Podemos ver a máquina de Turing como uma fita infinita e um controlador (cabeçote) que está em uma determinada posição da fita e registrando um dos finitos estados possíveis.... B B 0 0 1 B B B... p A string de entrada é escrita na fita e o restante das posições contêm o símbolo B. O cabeçote está inicialmente na posição mais à esquerda que contém um símbolo da string de entrada. O movimento da máquina de Turing consiste em: ir para o próximo estado; escrever um símbolo na posição atual da fita; mover o cabeçote para a esquerda ou para a direita. Definição 9.1. Uma máquina de Turing é uma 7-tupla M = (Q, Σ, Γ, δ, q 0, B, F ), onde Q é um conjunto finito de estados; Σ conjunto finito de símbolos de entrada. Γ conjunto completo de símbolos, Σ é um subconjunto. δ é uma função parcial δ : Q Γ Q Γ {L, R}, chamada de função de transição. q 0 Q é o estado inicial; B é um símbolo que representa um branco (está em Γ mas não em Σ). F Q é o subconjunto de estados finais. 1

2 Aula 9: Máquinas de Turing A função de transição δ(q i, a) = (q j, b, d) indica que quando a máquina está no estado q i lendo um símbolo a, ela deve mudar para o estado q j, escrever o símbolo b no lugar do símbolo a e, posteriormente, mover o cabeçote na direção d. Se d = L o cabeçote é movido para a esquerda, se d = R o cabeçote é movido para a direita. Como em um PDA, definiremos computações usando configurações instantâneas. Definição 9.2. A configuração instantânea de uma máquina de Turing será representada por BuqvB, sendo que a string de entrada é dada por w = uv; q representa o estado atual da máquina que está com o cabeçote sobre o primeiro símbolo de v; antes do B à esquerda e após o B à direita temos apenas outros B s. Definição 9.3. A notação Buq i vb Buq j vb indica que a configuração Buq j vb é obtida de Buq i vb a partir de apenas uma transição. A notação Buq i vb Buq j vb indica que a configuração Buq j vb é obtida de Buq i vb a partir de zero ou mais transições. No diagrama de estados de uma máquina de Turing, uma transição δ(q i, a) = (q j, b, d), com d {L, R} é representada por uma aresta entre os vértices q i e q j com rótulo a/b d. Exemplo 9.1 Considere a máquina de Turing M = ({q 0, q 1, q 2, q 3, q 4 }, {0, 1}, {0, 1, X, Y, B}, δ, q 0, B, {q 4 }) com a função de transição δ definida abaixo. δ 0 1 X Y B q 0 (q 1, X, R) (q 3, Y, R) q 1 (q 1, 0, R) (q 2, Y, L) (q 1, Y, R) q 2 (q 2, 0, L) (q 0, X, R) (q 2, Y, L) q 3 (q 3, Y, R) (q 4, B, R) q 4 O diagrama de estados de M é mostrado a seguir.

Aula 9: Máquinas de Turing 3 0/0 R, 0/0 L, Y/Y L 0/X R 1/Y L start q 0 q 1 q 2 X/X R q 3 q 4 Dada a string 0011. A computação da máquina será Bq 0 0011B BXq 1 011B BX0q 1 11B BXq 2 0Y 1B Bq 2 X0Y 1B BXq 0 0Y 1B BXXq 1 Y 1B BXXY q 1 1B BXXq 2 Y Y B BXq 2 XY Y B BXXq 0 Y Y B BXXY q 3 Y B BXXY Y q 3 B BXXY Y Bq 4 B Dada a string 0010. A computação da máquina será Bq 0 0010B BXq 1 010B BX0q 1 10B BXq 2 0Y 0B Bq 2 X0Y 0B BXq 0 0Y 0B BXXq 1 Y 0B BXXY q 1 0B BXXY 0q 1 B Definição 9.4. Seja M = (Q, Σ, Γ, δ, q 0, B, F ) uma máquina de Turing. Uma string u é aceita por estado final se a computação de u por M termina em um estado final. A linguagem de M, L(M), é o conjunto de strings aceitas por M. Exemplo 9.2 A máquina de Turing do Exemplo 9.1 aceita a linguagem {0 n 1 n n 1}. Exemplo 9.3 A máquina de Turing que computa max(m n, 0), dado que as strings de entrada são representadas por 0 m 10 n, é dada por M = ({q 0,..., q 6 }, {0, 1}, {0, 1, B}, δ, q 0, B, ) com função de transição

4 Aula 9: Máquinas de Turing δ 0 1 B q 0 (q 1, B, R) (q 5, B, R) q 1 (q 1, 0, R) (q 2, 1, R) q 2 (q 3, 1, L) (q 2, 1, R) (q 4, B, L) q 3 (q 3, 0, L) (q 3, 1, L) (q 0, B, R) q 4 (q 4, 0, L) (q 4, B, L) (q 6, 0, R) q 5 (q 5, B, R) (q 5, B, R) (q 6, B, R) O diagrama de estados para a máquina é dado por q 6 0/0 R 1/1 R 0/B R 1/1 R 0/1 L start q 0 q 1 q 2 q 3 1/1 L 0/0 L 1/B R B/B L q 5 q 6 q 4 B/0 R 1/B R 0/B R 1/B L 0/0 L A MT do Exemplo 9.3 não contém nenhum estado final. Ela não foi projetada pra aceitar uma linguagem mas sim para computar um função. Podemos definir um segundo critério para aceite em uma MT: quando ela aceita por parada. Definição 9.5. Seja M = (Q, Σ, Γ, δ, q 0, B, F ) uma máquina de Turing. Uma string u é aceita por parada se a computação de u por M para. Teorema 9.1. As seguintes declarações são equivalentes: 1. A linguagem L é aceita por uma máquina de Turing que aceita por estado final. 2. A linguagem L é aceita por uma máquina de Turing que aceita por parada. Demonstração. Seja M = (Q, Σ, Γ, δ, q 0, B, ) uma máquina de Turing que aceita L por parada. A máquina de Turing M = (Q {q f }, Σ, Γ, δ, q 0, B, {q f }) aceita por estado final. Para isso, q f é um novo estado. Se δ(q i, a) é definida, então δ (q i, a) = δ(q i, a), senão δ (q i, a) = (q f, a, R). O estado final q f não tem transições e portanto irá parar. Por outro lado, seja M = (Q, Σ, Γ, δ, q 0, B, F ) uma máquina de Turing que aceita L por estado final, podemos definir a máquina M = (Q {q f }, Σ, Γ, δ, q 0, B, ) que aceita L por

Aula 9: Máquinas de Turing 5 parada da seguinte forma: 1. se δ(q i, a) é definida, então δ (q i, a) = δ(q i, a). 2. Para cada estado Q F, se δ(q i, a) não é definida, então δ (q i, a) = (q f, a, R). 3. Para cada a Γ, δ (q f, a) = (q f, a, R). Definição 9.6. Uma linguagem que é aceita por uma máquina de Turing é chamada de linguagem recursivamente enumerável. Uma máquina de Turing pode não parar para uma determinada entrada já que podemos mover a máquina para frente e para trás na string de entrada. Definição 9.7. Uma linguagem que é aceita por uma máquina de Turing que sempre para, para todas as entradas, é chamada recursiva. Existem extensões de Máquinas de Turing, tais como MT com múltiplas fitas, MT com uma fita infinita em apenas uma direção, MT em que a entrada esteja em uma fita read only e as demais fitas sejam read-write, MT com diversas fitas de entrada read only, etc. Máquinas de Turing também são equivalentes a outros modelos computacionais, em especial computadores ( RAM machines ). Máquinas de Turing e computadores aceitam exatamente as mesmas linguagens, as linguagens recursivamente enumeráveis. É possível provar que esse modelos são semelhantes à máquina de Turing que introduzimos, elas têm o mesmo poder computacional, ou seja, decidem exatamente as mesmas linguagens. Definição 9.8. Uma máquina de Turing Não-Determinística (NTM) é uma máquina de Turing exceto pelo fato de que a função de transição δ(q, a) pode levar a um conjunto finito de triplas {(q 1, a 1, d 1 ), (q 2, a 2, d 2 ),..., (q n, a n, d n )}. A função δ é uma função parcial δ : Q Γ P(Q Γ {L, R})